我想要
要仅回滚,请执行以下操作:
Rolled back: 2015_05_15_195423_alter_table_web_directories
我跑步
php artisan migrate:rollback
,我的3个迁移正在回滚。
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
我删除
我的web_directories
和contacts
表都是无意的。我永远不希望这种情况发生,如果我只能回滚那个特定的事件,那么这场灾难就永远不会发生。
发布于 2015-05-17 22:44:43
如果您查看您的migrations
表,您将看到每个迁移都有一个批号。因此,当您回滚时,它会回滚上一批中的每个迁移。
如果您只想回滚最后一次迁移,那么只需将批号递增1即可。然后,下一次运行rollback
命令时,它只会回滚一次迁移,因为它处于自己的“批处理”中。
或者,从Laravel 5.3开始,您可以直接运行:
php artisan migrate:rollback --step=1
这将回滚最后一次迁移,而不管它的批号是什么。
发布于 2018-04-03 06:13:51
每次回滚时,您都会得到最后一批迁移。使用命令
php artisan migrate:rollback --step=1
发布于 2015-05-18 21:39:39
如果你不能按照@Martin Bean所说的去做,那么你可以尝试另一个技巧。
创建一个新的迁移,并在up()方法中插入要回滚的迁移的down()方法中的内容,并在down()方法中插入up()方法中的内容。
例如,如果您的原始迁移是这样的
public function up()
{
Schema::create('users', function(Blueprint $table)
{
$table->increments('id')->unsigned();
$table->string('name');
});
}
public function down()
{
Schema::drop('users');
}
然后在新的迁移文件中执行以下操作
public function up()
{
Schema::drop('users');
}
public function down()
{
Schema::create('users', function(Blueprint $table)
{
$table->increments('id')->unsigned();
$table->string('name');
});
}
然后运行迁移,它将删除该表。如果您再次想要回它,就回滚它。
https://stackoverflow.com/questions/30287896
复制相似问题