5

我有一个名为的迁移CreateItemsTable;我运行了它,我在那个表中有项目,现在我需要在表中添加一个新字段。我不能只在迁移文件中添加一个字段migrate:refresh因为我需要其中的数据。

我应该为添加字段进行另一次迁移吗?当我在开发中测试东西时,这似乎很混乱,我可能会改变很多领域。我不确定迁移是否比 PhpMyAdmin 更干净......或者我不理解它们?

4

1 回答 1

8

是的,每次您需要以某种方式更改表时,您都会为其创建一个新的迁移。这就是迁移的全部意义所在。当您在协作环境中开发并从远程存储库中提取一些更改时,您应该做的一件事(如果使用数据库)是运行其他开发人员可能创建的任何迁移。这使您的数据库保持同步。

当然,您可能偶尔会删除和添加列,但这没什么大不了的。

当您第一次创建表时,您可能正在使用Schema::create(). 该表的所有后续迁移都应使用Scheme::table(). 它接受相同的参数,只是它不尝试先创建表。

于 2013-04-20T16:39:06.753 回答