Eliminar de forma segura la migración en Laravel
En Laravel, parece haber un comando para crear una migración, pero no para eliminarla.
Crear comando de migración:
php artisan migrate:make create_users_table
Si quiero eliminar la migración, ¿puedo eliminar de forma segura el archivo de migraciones correspondiente dentro de la carpeta base de datos/migración?
Archivo de migraciones:
2013_05_31_220658_create_users_table
Accidentalmente creé una migración con mal nombre (comando php artisan migrate:make
:). No ejecuté ( ) php artisan migrate
la migración, así que decidí eliminarla. Mis pasos:
- Elimine manualmente el archivo de migración en
app/database/migrations/my_migration_file_name.php
- Restablezca los archivos de carga automática del compositor:
composer dump-autoload
- Relajarse
Si ejecutó la migración ( php artisan migrate
), puede hacer esto:
a) Ejecutar migrate:rollback
: es la forma correcta de deshacer la última migración (Gracias @Jakobud)
b) Si migrate:rollback
no funciona, hazlo manualmente (recuerdo errores con migrar:rollback en versiones anteriores):
- Elimine manualmente el archivo de migración en
app/database/migrations/my_migration_file_name.php
- Restablezca los archivos de carga automática del compositor:
composer dump-autoload
- Modifique su base de datos: elimine la última entrada de la tabla de migraciones
Si la migración se ejecutó (léase: se migró), entonces debe revertir la migración para borrar el historial de la tabla de su base de datos. Una vez que haya retrocedido, debería poder eliminar de forma segura su archivo de migración y luego continuar con la migración nuevamente.
NO ejecutes php artisan migrate:fresh
, eso eliminará todas las tablas.
Probablemente también necesites eliminar la entrada de la tabla de migraciones.
NO ejecute esto en producción, pero debería funcionar, si está en desarrollo y el resultado deseado es comenzar de nuevo:
# php artisan migrate:fresh
En producción , eso tal vez no sea lo deseado, por lo que debería anunciarse. (El migrate:fresh
comando eliminará todas las tablas de la base de datos y luego ejecutará el comando de migración).