php - migrations - nullable laravel
Error de Lumen cuando se utiliza migraciĆ³n artesanal (3)
¿Es posible que se haya olvidado de habilitar las variables dotenv? En su archivo bootstrap / app.php, puede habilitar las variables de entorno descomentando la siguiente línea:
Dotenv::load(__DIR__.''/../'');
Soy nuevo en Lumen y cuando intento usar:
php artisan migrate
Obtuve el siguiente error.
[PDOException]
SQLSTATE[HY000] [2002] No such file or directory
Si cambio ''localhost'' a ''127.0.0.1'' aparece este error:
[PDOException]
SQLSTATE[HY000] [2002] Connection refused
Si uso:
php artisan migrate --database=Lumen
Yo obtengo:
[InvalidArgumentException]
Database [Lumen] not configured.
Aquí está mi archivo .env
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=Lumen
DB_USERNAME=root
DB_PASSWORD=root
He leído otras preguntas sobre el desbordamiento de la pila y he intentado las soluciones, es decir, configurar las versiones de php y verificar la ruta a mysql.sock y todo está bien. Estoy usando la ruta completa y mi versión de PHP es correcta.
Estoy usando MAMP y tengo una base de datos llamada ''Lumen'' (no hay tablas en este momento).
Creado una migración usando terminal:
php artisan make:migration --create=items create_items_table
Estoy usando php artisan serve (servidor 8000) para ver mi proyecto, que puedo ver.
MAMP is on:
apache=80
nginx=80
mysql=3306
Usé la misma configuración para mi proyecto Laravel y está funcionando bien. Pero laravel tiene un archivo database.php que tiene todos los detalles dentro de él.
Espero que sea suficiente información, ¡cualquier ayuda sería muy apreciada!
Gracias por adelantado
EDITAR: Este es mi archivo app.php, el resto queda intacto.
require_once __DIR__.''/../vendor/autoload.php'';
Dotenv::load(__DIR__.''/../'');
$app = new Laravel/Lumen/Application(
realpath(__DIR__.''/../'')
);
$app->withFacades();
$app->withEloquent();
Después de mucho alboroto, encontré la respuesta.
El problema era con MAMP, el socket pdo para mysql no estaba en el archivo php.ini y tenía que incluirse allí.
[Pdo_mysql]
; If mysqlnd is used: Number of cache slots for the internal result set cache
; http://php.net/pdo_mysql.cache_size
pdo_mysql.cache_size = 2000
; Default socket name for local MySQL connects. If empty, uses the built-in
; MySQL defaults.
; http://php.net/pdo_mysql.default-socket
pdo_mysql.default_socket=
Incluyendo esa línea arreglado todos mis probelems.
Para los nuevos muchachos que están probando Lumen, después de 3 tristes horas, finalmente resolví este problema. ¡No eres tú, es el MAMP!
Todo este tiempo, MAMP no estaba usando los puertos predeterminados 80 y 3306 para web y mysql. Entonces haz clic en ese botón. ¡Eso es todo! Y pronto publicaré esto en mi blog: D