Eliminar de forma segura la migración en Laravel

Resuelto Globalz asked hace 54 años • 9 respuestas

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
Globalz avatar Jan 01 '70 08:01 Globalz
Aceptado

Accidentalmente creé una migración con mal nombre (comando php artisan migrate:make:). No ejecuté ( ) php artisan migratela migración, así que decidí eliminarla. Mis pasos:

  1. Elimine manualmente el archivo de migración enapp/database/migrations/my_migration_file_name.php
  2. Restablezca los archivos de carga automática del compositor:composer dump-autoload
  3. 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:rollbackno funciona, hazlo manualmente (recuerdo errores con migrar:rollback en versiones anteriores):

  1. Elimine manualmente el archivo de migración enapp/database/migrations/my_migration_file_name.php
  2. Restablezca los archivos de carga automática del compositor:composer dump-autoload
  3. Modifique su base de datos: elimine la última entrada de la tabla de migraciones
malisokan avatar Jul 24 '2013 09:07 malisokan

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.

Jason Lewis avatar Jun 01 '2013 10:06 Jason Lewis

NO ejecutes php artisan migrate:fresh, eso eliminará todas las tablas.

LastM4N avatar Aug 03 '2020 15:08 LastM4N

Probablemente también necesites eliminar la entrada de la tabla de migraciones.

Stephane avatar Jun 01 '2013 10:06 Stephane

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:freshcomando eliminará todas las tablas de la base de datos y luego ejecutará el comando de migración).

joash avatar Sep 02 '2018 16:09 joash