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

Cakephp 3 : How to update migration file?

我已经通过以下命令创建了我的数据库迁移文件

bin/cake bake migration_snapshot Initial

之后,我更新了一个 table,添加了一个新字段,例如

->addColumn('role', 'string', [
                'default' => null,
                'limit' => 20,
                'null' => true,
])

那我用过

bin/cake migrations migrate 

命令 windows 给定消息 "All done" 但是什么都没有更新! 如何更新我的迁移文件?

在创建快照的数据库上应用初始快照,当然不会有任何影响,因为该快照将自动标记为已迁移(通过在版本历史记录中添加适当的条目table, 默认命名为 phinxlog).

因此,当您尝试将该迁移应用于创建它的数据库时,它不会被应用,因为它与当前版本相匹配。如果您要使用 new/empty 数据库,则会应用初始迁移。

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

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

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

增加迁移文件名称上的数字,您可以重新运行它。在完成单个迁移文件之前,我经常使用它。