¿Por qué aparece SQLite por defecto?-- namespace

 

¿Por qué aparece SQLite por defecto?

Laravel, al crear un proyecto nuevo, no configura automáticamente una base de datos MySQL o PostgreSQL. El archivo .env que viene por defecto tiene estas líneas:

text
DB_CONNECTION=sqlite
# DB_HOST=127.0.0.1
# DB_PORT=3306
# DB_DATABASE=laravel
# DB_USERNAME=root
# DB_PASSWORD=

Por tanto, si no has modificado esas variables antes de instalar Jetstream, Laravel asume que quieres usar SQLite (un archivo local .sqlite en la carpeta database/).


¿Qué significa la pregunta que te hace?

“New database migrations were added. Would you like to re-run your migrations? (yes/no)”

Jetstream ha añadido nuevas migraciones (tablas de usuarios, sesiones, equipos, etc.) y te pregunta si quieres ejecutarlas ahora mismo.

  • Si respondes yes → las ejecutará con la conexión de base de datos que tengas configurada en ese momento.

  • Si respondes no → no las ejecutará, y luego tendrás que hacerlo manualmente con php artisan migrate.


¿Qué deberías hacer?

Depende de qué base de datos quieras usar en tu proyecto:

Opción A) Quieres usar MySQL / MariaDB / PostgreSQL (recomendado para producción)

  1. Cancela la instalación de Jetstream (presiona Ctrl+C si está esperando tu respuesta).

  2. Configura tu base de datos en el archivo .env. Por ejemplo, para MySQL:

    text
    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=inertia-example   # el nombre que le diste
    DB_USERNAME=root
    DB_PASSWORD=tu_contraseña
  3. Crea la base de datos (si no la tienes) con tu gestor favorito o desde la terminal:

    bash
    mysql -u root -p -e "CREATE DATABASE inertia-example;"
  4. Vuelve a ejecutar el comando de instalación de Jetstream:

    bash
    php artisan jetstream:install inertia

    Esta vez, al llegar a la pregunta, ya tendrás MySQL configurado, y la migración se ejecutará sobre tu base de datos MySQL. Responderás yes sin problemas.

Opción B) Quieres usar SQLite (para desarrollo rápido)

Si no te importa usar SQLite, simplemente:

  1. Asegúrate de que el archivo database/database.sqlite exista (si no, créalo vacío).

  2. Responde yes a la pregunta y Jetstream ejecutará las migraciones en ese archivo.


¿Qué pasa si respondo "no" y luego quiero migrar?

Si respondiste no, no pasa nada. Solo tendrás que ejecutar las migraciones manualmente después de configurar tu base de datos:

bash
php artisan migrate

Eso creará todas las tablas necesarias en la base de datos que tengas configurada en ese momento.


Resumen rápido

Tu situaciónAcción recomendada
Ya configuraste MySQL/PostgreSQL en .envResponde yes sin miedo.
No has tocado .env y quieres usar MySQLCancela, configura .env, crea la BD, y vuelve a instalar Jetstream.
Quieres usar SQLiteResponde yes y listo (o no y luego php artisan migrate).

Consejo final

En el tutorial que te compartí, yo asumo que usas MySQL y te indico que crees la base de datos y configures .env antes de instalar Jetstream. Si saltaste ese paso, ahora ya sabes cómo corregirlo.

Si ya respondiste yes y las migraciones se ejecutaron en SQLite, pero quieres cambiarlo a MySQL, no te preocupes: puedes hacer php artisan migrate:refresh después de cambiar .env para recrear las tablas en el nuevo motor.

¡Ánimo, que ya casi lo tienes! Si te surge otra duda, aquí estoy. 🚀


Solución paso a paso

1. Crea el controlador (si no existe)

bash
php artisan make:controller ExampleController

Esto generará el archivo en app/Http/Controllers/ExampleController.php con el namespace App\Http\Controllers.

2. Verifica que tu ruta esté bien escrita

En routes/web.php, asegúrate de tener:

php
use App\Http\Controllers\ExampleController;

Route::get('/example', [ExampleController::class, 'index'])->name('example');

otra recomendacion ::El error es claro: no has importado la clase Inertia en tu controlador. Laravel no sabe qué es Inertia::render() porque no has declarado el use correspondiente.


✅ Solución

Abre tu controlador app/Http/Controllers/ExampleController.php y agrega la importación al inicio:

php
<?php

namespace App\Http\Controllers;

use Inertia\Inertia; // <--- ¡Esta línea es obligatoria!

class ExampleController extends Controller
{
    public function index()
    {
        return Inertia::render('ExampleInertia');
    }
}

vc

Verifica que el componente Vue exista

Si después de agregar el use aparece otro error similar a "Page not found" o "Unable to resolve component", significa que no has creado el archivo resources/js/Pages/ExampleInertia.vue. Créalo con:

vue
<template>
    <h1>Hello World desde Inertia</h1>
</template>

<script setup>
// Aquí puede ir lógica si la necesitas
</script>

🔄 Recarga el servidor

Si usas php artisan serve, reinícialo o espera a que detecte el cambio (si APP_DEBUG=true suele refrescar automáticamente).


📦 Asegura que el paquete de Inertia esté instalado

Si por algún motivo no has instalado el paquete de Inertia para Laravel, ejecuta:

bash
composer require inertiajs/inertia-laravel

Pero si instalaste Jetstream con Inertia, ya debería estar incluido.


¡Con eso debería funcionar! 🚀 El error Class "App\Http\Controllers\Inertia" not found desaparecerá y verás tu "Hello World".

Comentarios

Entradas más populares de este blog

Tareas con Laravel + Inertia + Jetstream

HACER CAMBIOS-A TU EJEMPLO

HACER CAMBIOS-AL EJEMPLO POR DEFECTO