首页 > 解决方案 > 处理续集迁移和初始化的工作流程?

问题描述

我不明白 sequelize 迁移工作流程是如何工作的。我有一个新建项目,数据库是使用 SQL 脚本设计的。之后我们用来sequelize auto生成模型。

我现在需要生成一个迁移文件,这样我就可以运行 CLI 来运行 SQL 查询,从而为本地配置的数据库创建带有列等的新表。

没有第三方工具 afaik 可以将我拥有的 SQL 脚本转换为 Sequelize 迁移文件。我必须为 60 个表手动执行此操作。有一种自动创建它的脚本方法,但它使用单独的格式,该格式不具有用于撤消迁移的向后兼容性(sequelize-auto-migrations)。

当我在我的文件中更新 sequelize 模型模式时,没有一个单独的命令可以通过基于上次迁移执行运行的差异机制使迁移文件与这些更改同步。

这意味着我必须修改模型并修改迁移文件,从而导致潜在的人为错误和重复的冗余工作。

所以我的问题是

  1. sequelize 有办法初始化第一个迁移文件吗?
  2. 当我在 sequelize 中修改模型并根据一些差异机制自动生成新的迁移文件时,是否有可以使用的工具?

标签: node.jspostgresqlsequelize.js

解决方案


好吧我发现了

对于第 1 步,您可以运行 aqueryInterface.sequelize.query(<query>)并获取 SQL 脚本/在 sequelize 中直接运行它们以进行初始化。https://sequelize.org/master/class/lib/query-interface.js~QueryInterface.html。这个简短的代码引用了 sql 脚本作为第一次迁移

在此处输入图像描述

对于第 2 步,您可以手动修改文件并更新迁移,然后运行sequelize-auto以从远程/本地数据库中提取最新更改


推荐阅读