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.
增加迁移文件名称上的数字,您可以重新运行它。在完成单个迁移文件之前,我经常使用它。
我已经通过以下命令创建了我的数据库迁移文件
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.
增加迁移文件名称上的数字,您可以重新运行它。在完成单个迁移文件之前,我经常使用它。