我有一个名为CreateItemsTable
的迁移;我跑了,我在那个表中有项目,现在我需要在表中添加一个新字段。我无法在迁移文件和migrate:refresh
中添加字段,因为我需要其中包含的数据。
我是否应该为添加字段进行另一次迁移?当我在开发中测试一些东西时,这似乎很乱,我可能会更改字段。我不确定迁移是否比PhpMyAdmin更干净......或者我可能不理解它们?
答案 0 :(得分:9)
是的,每当您需要以某种方式更改表格时,您都会为其创建新的迁移。这就是迁移的重点。当您在协作环境中进行开发并从远程存储库中删除某些更改时,您应该执行的任务之一(如果使用数据库)运行其他开发人员可能已创建的任何迁移。这可以使您的数据库保持同步。
当然,您可能会偶尔放弃并添加列,但这没什么大不了的。
第一次创建表时,您可能正在使用Schema::create()
。该表的所有后续迁移都应使用Scheme::table()
。它接受相同的参数,除了它不会首先尝试创建表。