start migrations php mysql migration eloquent lumen

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__.''/../'');

Lumen Documentación sobre bases de datos

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