Cakephp 3:如何更新迁移文件?

时间:2015-08-06 06:34:59

标签: cakephp cakephp-3.0

我已通过以下命令

创建了我的数据库迁移文件
bin/cake bake migration_snapshot Initial

之后我更新了一个表,添加了一个像

这样的新字段
->addColumn('role', 'string', [
                'default' => null,
                'limit' => 20,
                'null' => true,
])

然后我用了

bin/cake migrations migrate 

命令窗口给出一条消息“全部完成” 但没有更新! 如何更新我的迁移文件?

2 个答案:

答案 0 :(得分:1)

在数据库上应用初始shapshot创建快照,当然不会产生任何影响,因为该快照将自动标记为已迁移(通过向版本历史记录表添加适当的条目,即默认情况下名为phinxlog)。

因此,当您尝试在其创建的数据库上应用该迁移时,将不会应用该迁移,因为它与当前版本匹配。如果要使用新的/空数据库,则将应用初始迁移。

要应用更改,您必须手动或使用bake创建新的迁移文件,然后应用该迁移。快速举例:

bin/cake bake migration AddRoleToUsers role:string
bin/cake migrations migrate

这将创建一个新的迁移,添加role列(默认情况下长度为255),应用它,然后通过将版本添加到迁移中再次将迁移标记为已迁移在提到版本历史表之前。

答案 1 :(得分:0)

增加迁移文件名称的编号,您可以重新运行它。在最终确定单个迁移文件之前,我使用了很多。