我使用了php artisan migrate:make add_something_to_to_user_table --table=users
并编码
Schema::table('users', function(Blueprint $table)
{
$table->string('description1');
$table->string('description2');
$table->string('description3');
});
并添加了三个字段并提供了php artisan migrate
,并将字段存储到数据库中
还发现migration table
已使用行2014_11_05_145536_add_something_to_to_user_table
现在当我使用php artisan migrate:rollback
迁移表中的2014_11_05_145536_add_something_to_to_user_table
行缺失,但添加到用户表的列保持不变
为什么不删除表格中的字段,这会在再次使用php artisan migrate
时导致错误...
答案 0 :(得分:10)
您应该在迁移中使用down()
方法,如下所示:
public function down()
{
Schema::table('users', function($table)
{
$table->dropColumn(array('description1', 'description2', 'description3'));
});
}
将在回滚时调用它,并将负责删除迁移添加的列。
答案 1 :(得分:1)
根据laravel 7+文档,当您需要同时删除多列时,这也将起作用。
public function down(){
Schema::table('users', function (Blueprint $table) {
$table->dropColumn(['description1', 'description2', 'description3']);
});
}
答案 2 :(得分:-1)
添加向下公共功能,以便在回滚时删除用户表。
public function down()
{
Schema::drop('users');
}