node.js - 处理续集迁移和初始化的工作流程?
问题描述
我不明白 sequelize 迁移工作流程是如何工作的。我有一个新建项目,数据库是使用 SQL 脚本设计的。之后我们用来sequelize auto
生成模型。
我现在需要生成一个迁移文件,这样我就可以运行 CLI 来运行 SQL 查询,从而为本地配置的数据库创建带有列等的新表。
没有第三方工具 afaik 可以将我拥有的 SQL 脚本转换为 Sequelize 迁移文件。我必须为 60 个表手动执行此操作。有一种自动创建它的脚本方法,但它使用单独的格式,该格式不具有用于撤消迁移的向后兼容性(sequelize-auto-migrations)。
当我在我的文件中更新 sequelize 模型模式时,没有一个单独的命令可以通过基于上次迁移执行运行的差异机制使迁移文件与这些更改同步。
这意味着我必须修改模型并修改迁移文件,从而导致潜在的人为错误和重复的冗余工作。
所以我的问题是
- sequelize 有办法初始化第一个迁移文件吗?
- 当我在 sequelize 中修改模型并根据一些差异机制自动生成新的迁移文件时,是否有可以使用的工具?
解决方案
好吧我发现了
对于第 1 步,您可以运行 aqueryInterface.sequelize.query(<query>)
并获取 SQL 脚本/在 sequelize 中直接运行它们以进行初始化。https://sequelize.org/master/class/lib/query-interface.js~QueryInterface.html。这个简短的代码引用了 sql 脚本作为第一次迁移
对于第 2 步,您可以手动修改文件并更新迁移,然后运行sequelize-auto
以从远程/本地数据库中提取最新更改
推荐阅读
- javascript - Mongoose updateOne() 正常但没有更新
- node.js - 无法使用反应将socket.io与后端连接
- javascript - 如果对象中存在特定文本,则获取父值
- php - 如何使用codeigniter检查多个表中的唯一电子邮件?
- ios - React Native中计算iOS Content Inset的正确方法
- ansible - 詹金斯管道:awx cli标准输出
- c# - 具有可选导航属性的嵌套 DTO:“在类型 'Expression[]' 和匿名类型之间未定义强制运算符”
- python - 使用 Python 3.x 将多列堆叠成 csv 中的一列
- python - 在 Python pandas DataFrame 中从 API 填充 JSON 数据 - TypeError 和 IndexError
- docker - 来自 Docker Registry 的意外 EOF