plantillas - laravel foreach index
Revertir una migración específica en Laravel (14)
Laravel 5.3+
Retroceda un paso. Nativamente.
php artisan migrate:rollback --step=1
Y aquí está la página del manual: docs .
Laravel 5.2 y antes
No hay forma de hacerlo sin problemas. Para más detalles, verifique la answer Martin Bean.
yo quiero
solo para revertir:
Rolled back: 2015_05_15_195423_alter_table_web_directories
Corro
php artisan migrate:rollback
, 3 de mis migraciones están retrocediendo.
Rolled back: 2015_05_15_195423_alter_table_web_directories
Rolled back: 2015_05_13_135240_create_web_directories_table
Rolled back: 2015_05_13_134411_create_contacts_table
Yo borro
mis dos
web_directories
y mi tabla de
contacts
sin querer.
Nunca quiero que eso suceda, y si puedo revertir solo ese específico, este desastre nunca sucederá.
1.) Dentro de la base de datos, diríjase a la tabla de migraciones y elimine la entrada de la migración relacionada con la tabla que desea eliminar.
Ejemplo de imagen de tabla de migración
2.) Luego, elimine la tabla relacionada con la migración que acaba de eliminar de la instrucción 1.
Eliminar ejemplo de imagen de tabla
3.) Finalmente, realice los cambios que desee en el archivo de migración de la tabla que eliminó de la instrucción no.
2 luego ejecute
php artisan migrate
para migrar la tabla nuevamente.
Cada vez que retrocede, obtiene el último lote de migración. usa el comando
php artisan migrate:rollback --step=1
Como se
indica en el manual de Laravel
, puede revertir un número específico de migraciones utilizando la opción
--step
php artisan migrate:rollback --step=5
La mejor manera es crear una nueva migración y hacer los cambios necesarios en eso.
Solución alternativa para el peor de los casos ( si tiene acceso a DB plus , está de acuerdo con un RESET de los datos de esa tabla ):
-
Vaya a DB y
elimine
/ cambie el nombre de la entrada de migración para
your-specific-migration
-
Descarte
la tabla creada por
your-specific-migration
-
Ejecute
php artisan migrate --path=/database/migrations/your-specific-migration.php
Esto obligará a laravel a ejecutar esa migración específica ya que no existe una entrada al respecto en el historial de migración de Laravel
ACTUALIZACIÓN : La manera de Laravel (Gracias, @ thiago-valente)
Correr:
php artisan migrate:rollback --path=/database/migrations/your-specific-migration.php
y entonces:
php artisan migrate
Esto volverá a ejecutar esa migración particular
Migrar tablas una por una.
Cambie el número de lote de la migración que desea revertir al más alto.
Ejecute migrate: rollback.
Puede que no sea la forma más cómoda de lidiar con proyectos más grandes.
Puede que sea un poco tarde para responder esta pregunta, pero he aquí una forma muy buena, limpia y eficiente de hacerlo. Intentaré ser lo más minucioso posible.
Antes de crear sus migraciones, cree diferentes directorios así:
php artisan make:migration alter_table_web_directories --path=database/migrations/batch_2
Luego, al crear sus migraciones, ejecute el siguiente comando (utilizando sus tablas como ejemplo):
php artisan make:migration alter_table_web_directories --path=database/migrations/batch_3
o
php artisan migrate alter_table_web_directories --path=database/migrations/batch_1
o
php artisan migrate:rollback --step=1
or try
php artisan migrate:rollback alter_table_web_directories --path=database/migrations/batch_1
Los comandos anteriores harán que el archivo de migración se encuentre dentro de la ruta de directorio dada. Luego, simplemente puede ejecutar el siguiente comando para migrar sus archivos a través de sus directorios asignados.
php artisan migrate:rollback --step=2
or try
php artisan migrate:rollback alter_table_web_directories --path=database/migrations/batch_2
* Nota: puede cambiar lote_1 a lote_2 o lote_3 o cualquier nombre de carpeta en el que esté almacenando los archivos de migración. Siempre y cuando permanezca dentro del directorio de base de datos / migraciones o algún directorio especificado.
A continuación, si necesita revertir sus migraciones específicas, puede revertir por lote como se muestra a continuación:
php artisan migrate:rollback --step=3
or try
php artisan migrate:rollback alter_table_web_directories --path=database/migrations/batch_3
o
php artisan migrate:rollback --step=1
o
php artisan migrate:rollback --step=2
El uso de estas técnicas le permitirá más flexibilidad y control sobre su (s) base (s) de datos y cualquier modificación realizada en su esquema.
Retroceda un paso. Nativamente.
php artisan migrate:refresh --step=2
Rollback dos pasos. Nativamente.
php artisan migrate:rollback --step=3
Si desea modificar el archivo de migración original y volver a migrarlo, puede usar este paquete para migrar. (Aplicable a Laravel 5.4 o posterior)
Primero, instale el paquete en su proyecto Laravel:
composer require caloskao/migrate-specific
Comando de registro en
app/Console/Kernel.php
:
protected $commands = [
/CalosKao/MigrateSpecific::class
];
Ahora, ejecuta este comando para migrar tu archivo
php artisan migrate:specific database/migrations/table.php
Si mira en su tabla de
migrations
, verá que cada migración tiene un número de lote.
Entonces, cuando retrocede, retrocede cada migración que fue parte del último lote.
Si solo desea revertir la última migración, incremente el número de lote en uno.
Luego, la próxima vez que ejecute el comando de
rollback
, solo revertirá esa migración ya que está en un "lote" propio.
Si no puede hacer lo que le dice @Martin Bean, puede probar con otro truco.
Cree una nueva migración y en ese archivo en el método up () inserte lo que está en el método down () de la migración que desea revertir y en el método down () inserte lo que está en el método up ().
por ejemplo, si su migración original es así
public function up()
{
Schema::create(''users'', function(Blueprint $table)
{
$table->increments(''id'')->unsigned();
$table->string(''name'');
});
}
public function down()
{
Schema::drop(''users'');
}
entonces en el nuevo archivo de migración haga esto
public function up()
{
Schema::drop(''users'');
}
public function down()
{
Schema::create(''users'', function(Blueprint $table)
{
$table->increments(''id'')->unsigned();
$table->string(''name'');
});
}
y luego ejecute la migración, eliminará la tabla. y si de nuevo quieres recuperarlo, simplemente retrocede.
Use el comando "php artisan migrate: rollback --step = 1" para revertir la migración a 1 paso atrás.
Para obtener más información, consulte el enlace: - docs
mejor usar refrescar migrar
Puede revertir y volver a migrar un número limitado de migraciones al proporcionar la opción de paso al comando de actualización. Por ejemplo, el siguiente comando revertirá y volverá a migrar las dos últimas migraciones:
database
|
migrations
|
batch_1
batch_2
batch_3
de lo contrario se usa la migración de reversión
Puede revertir un número limitado de migraciones al proporcionar la opción de paso al comando de reversión. Por ejemplo, el siguiente comando revertirá las últimas tres migraciones:
php artisan make:migration alter_table_web_directories --path=database/migrations/batch_1
para más detalles sobre la migración see
INSERT INTO homestead.bb_migrations (`migration`, `batch`) VALUES (''2016_01_21_064436_create_victory_point_balance_table'', ''2'')
algo como esto