una todas sola seeder orden migraciones migracion las especifico especifica ejecutar crear correr column cambiar php laravel

php - todas - laravel migration add column



¿Cómo ejecuto migraciones para un entorno específico en laravel? (4)

Estoy configurando una nueva aplicación con laravel (Laravel 4), y tengo algunos problemas para configurar la base de datos mediante migraciones

Hice un archivo de migración con:

artisan migrate:make --table="jobs" --create jobs

Lo que creó un archivo en la base de datos / migraciones como se esperaba, hice algunos mods a esto, y lo encendí usando

artisan migrate --env=local

Pero me sale la respuesta de "Nothing to migrate"

Si trato de ejecutar sin --env=local , usa el archivo database.php en la carpeta de configuración (no en la carpeta local / staging / production) que no queremos usar, ya que no será específico del entorno.

Lo primero que pensé fue en Aceptar, tal vez necesito poner la migrate:make env en migrate:make call, así que lo intenté, pero recibí un error que decía que no podía crear el archivo de migración. Entonces pensé que no tiene sentido hacer migraciones basadas en env de todos modos ... deberían crearse genéricamente, y simplemente ejecutarse en una base por env, por lo que al final, todos los entornos usan los mismos scripts de migración.

Así que estoy un poco atascado ahora a dónde ir desde aquí


Debe especificar el entorno antes del comando migrar.

artisan --env=local migrate

La ejecución de la artisan help muestra el formato en el que deben seguir los comandos.

artisan help Usage: [options] command [arguments]


Me di cuenta de una solución para ejecutar migrate para diferentes bases de datos. Básicamente, el comando artisan migrate --env=local no funciona. Pero podemos definir una nueva cadena de conexión en config/database.php . Por ejemplo:

<?php ''mysql_testing'' => [ ''driver'' => ''mysql'', ''host'' => env(''DB_TESTING_HOST''), ''database'' => env(''DB_TESTING_DATABASE''), ''username'' => env(''DB_TESTING_USERNAME''), ''password'' => env(''DB_TESTING_PASSWORD''), ''charset'' => ''utf8'', ''collation'' => ''utf8_unicode_ci'', ''prefix'' => ''prefix_'', ],

Y especifique la --database cuando --database la --database artisan migrate esta manera:

php artisan migrate --database=mysql_testing

Espero que esto ayude :)


Resuelto.

La solución fue simplemente editar local / database.php (o production / database.php, etc.), asegurándose de que la variable de ruta de las migraciones apunte a la ubicación que se migrate:make es crear los archivos de migración, solo cambie

''application'' => __DIR__.''/../database/migrations'',

a

''application'' => DIR.''/../../database/migrations'',


Si modifica una migración después de ejecutarla, primero debe revertir la migración.

php artisan migrate:rollback

Sigue ejecutándolo hasta que la migración que has cambiado se revierta. Alternativamente, puede restablecer todo su esquema con

php artisan migrate:reset

Pero luego tendrá que llamar a sus migraciones como de costumbre para actualizarlas.

php artisan migrate

Finalmente puedes restablecer y luego migrar llamando

php artisan rebuild

También tenga en cuenta que generalmente es una mala práctica modificar sus migraciones después de que se hayan realizado, a menos que literalmente las haya realizado. Una vez implementado, no debe modificarlo, sino crear un nuevo archivo de migración.

Espero que esto ayude.

Edición: De alguna manera me perdí el indicador Laravel 4. Creo que la mayoría de estos comandos aún funcionan, pero es posible que deba ajustarlos.