javascript - 我应该在服务器启动时运行所有的 Sequelize 迁移吗?

标签 javascript node.js database-migration sequelize.js

我对 Sequelize 中如何处理迁移有点困惑。文档中提到

migrator.migrate ... will execute all the up methods within your pending migrations

待处理是否意味着 Sequelize 会跟踪哪些迁移已在当前数据库上运行,哪些迁移未在某些持久存储中运行?如果是这样,是否意味着我应该在应用程序启动时加载迁移文件夹中的所有迁移并尝试运行它们?

如果没有,跟踪当前服务器上应运行哪些迁移的最佳实践是什么?

最佳答案

您说的挂起是指尚未在手头数据库上运行的迁移,这是对的。

如果该应用尚未部署,您无需运行迁移来更新数据库。您可以改为更新模型以反射(reflect)您想要的更改。您始终可以在本地删除/创建数据库以使更改显示,但前提是您仍处于开发阶段。

如果您的应用程序已部署,数据库已存在并且您想要更新它,那么当您运行迁移命令时,它将运行迁移文件夹中的每个新文件。如果您正在处理应用程序上的多个环境和协作者,我会将迁移文件保留在该文件夹中。创建并运行新的迁移后,之前的迁移就不会再次运行,因此您无需担心它们。

关于javascript - 我应该在服务器启动时运行所有的 Sequelize 迁移吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23346799/

相关文章:

node.js - 每次运行 cluster.fork() 时,我都会收到错误 : bind EADDRINUSE

javascript - 如何自动登录用户node.js Passport.js

javascript - Chrome 中的 Angular CPU 泄漏?

node.js - 使用任何 Node 模块在内存中创建 ZIP 文件

java - 向实体添加新字段

带有 DEFAULT NULL 的 MySQL 列 - 文体选择,还是?

python - 我正在使用 Peewee,我需要为我的数据库创建迁移文件

javascript - Promise.then 作业执行顺序

javascript - 如果其中的内容被删除,则向 DIV 提供新代码

node.js - MoSTLy 静态 Express 应用程序,具有一个服务器端路由