【发布时间】:2021-08-08 13:54:23
【问题描述】:
我通常在我的 NodeJS 项目中使用迁移来创建表。我不使用sync({ force: true })。因此,每次我需要更改数据库架构时,我都会进行迁移。通过这种方式,我可以保持与生产环境一样的精确场景。
我的问题是如何在创建带有迁移的表时添加外键约束。问题是我必须按特定顺序创建迁移。因为,假设我正在创建这些表。
1) users - id, name, email, password
2) posts - id, title, content, user_id, category_id
3) categories - id, name
在这里,如果我按此顺序运行迁移,则会出现错误。
ERROR: Cannot add foreign key constraint
这是因为,categories 表在运行posts 表迁移时尚未创建。
那么,我在这里有什么选择。
-
以正确的顺序创建迁移,以便它们以相同的顺序运行。
-
稍后使用不同的迁移添加外键列(仅用于添加列)。
-
或者使用
sync({ force: true })这样,在模型中添加列并添加关联时会创建表。 -
或任何其他解决方案
你能解释一下我应该在这里做什么吗..
提前致谢。
【问题讨论】:
标签: mysql node.js foreign-keys sequelize.js