Laravel Migrate:回滚添加和删除表列

我已使用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时出错...


解决方案

您的迁移中应该有一个down()方法,应该如下所示:

public function down()
{
    Schema::table('users', function($table)
    {
        $table->dropColumn(array('description1', 'description2', 'description3'));
    });
}

它将在回滚时调用,并负责删除迁移添加的列。

相关文章