2017-03-09 73 views

回答

2

我认为迁移被设计为按顺序运行,因为每个人都可以依赖于更早的迁移。

例如,迁移#1可以创建表并且迁移#2可以向该表添加一些额外的字段。如果您尝试运行#2迁移而没有运行#1,则会失败。

运行artisan migrate时,它将只运行尚未应用的迁移,除非您使用migrate:refresh,在这种情况下,它将重置并重新运行所有迁移。

如果你是死心塌地只运行一个迁移 - 你可以暂时删除您不想跑从目录中的所有迁移,并运行迁移命令。然后将其余的移回去。这是一个怪异的解决方法,但它会做到这一点。

还有一个替代方案,我认为甚至可能最适合您:

php artisan migrate --path=/database/migrations/selected/ 

您要迁移的是/选择/目录(你需要创建)内。

0

您可以创建一个新的迁移,这将增加新列,即:

Schema::table('users', function (Blueprint $table) { $table->string('additional_field'); });

和运行php artisan migrate

这将与新列更新表格,而不是与其他表干扰。