Cakephp 3.x 迁移:定义外键依赖/执行顺序
Cakephp 3.x migration: define foreign key dependencies / execution order
系统
- CakePHP 版本:3.4.6
- 平台和目标:MySQL5.7,Windows10
问题
我将列定义为 迁移 B 中的外键,它需要先行 table A存在/已执行迁移。
会发生什么
当然会出现错误SQLSTATE[HY000]: General error: 1215 Cannot add foreign key
,因为table A的迁移必须先执行,这样B才能定义它的外键。
问题
我可以在迁移中定义执行顺序/依赖关系,还是必须手动执行迁移?
顺序由迁移文件名的版本(日期时间)前缀决定,它们按升序执行,即从最早的版本到最新的版本。回滚按降序执行,即从最新到最早(从 Phinx 0.8 开始,回滚顺序可以通过 the version_order
option 定义)。
因此,如果您需要按特定顺序应用迁移,请相应地设置文件名的版本。或者在单个迁移文件中应用更改。
系统
- CakePHP 版本:3.4.6
- 平台和目标:MySQL5.7,Windows10
问题
我将列定义为 迁移 B 中的外键,它需要先行 table A存在/已执行迁移。
会发生什么
当然会出现错误SQLSTATE[HY000]: General error: 1215 Cannot add foreign key
,因为table A的迁移必须先执行,这样B才能定义它的外键。
问题
我可以在迁移中定义执行顺序/依赖关系,还是必须手动执行迁移?
顺序由迁移文件名的版本(日期时间)前缀决定,它们按升序执行,即从最早的版本到最新的版本。回滚按降序执行,即从最新到最早(从 Phinx 0.8 开始,回滚顺序可以通过 the version_order
option 定义)。
因此,如果您需要按特定顺序应用迁移,请相应地设置文件名的版本。或者在单个迁移文件中应用更改。