node.js - 处理 Sequelize 迁移和初始化的工作流程?

标签 node.js postgresql sequelize.js

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

我现在需要生成一个迁移文件,以便我可以运行 CLI 来运行 SQL 查询,为本地配置的数据库创建包含列等的新表。

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

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

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

所以我的问题是

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

最佳答案

好吧我发现了

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

enter image description here

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

关于node.js - 处理 Sequelize 迁移和初始化的工作流程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58003107/

相关文章:

postgresql - 我如何知道我的 PostgreSQL 服务器是否使用 "C"语言环境?

sql - 有条件地找到不同的计数

ruby-on-rails-3 - 如何清除模型的 :has_many associations without writing to the database in ActiveRecord?

node.js - Sequelize : mapping between raw data and model

javascript - 如何使用http-server创建NodeJS服务器?

ajax - 使用 Express 检测 NodeJS 上的 AJAX 请求

node.js - 每次服务器重启后的端口 "already in use"

node.js - 将变量传递给expressjs 3条路线

node.js - Sequelize - 有条件地按关联排序

node.js - 使用sequelize N :M associations实现 "correct"结果的 "flat"方法是什么