我对 Sequelize 中如何处理迁移有点困惑。文档中提到
migrator.migrate
... will execute all the up methods within your pending migrations
待处理是否意味着 Sequelize 会跟踪哪些迁移已在当前数据库上运行,哪些迁移未在某些持久存储中运行?如果是这样,是否意味着我应该在应用程序启动时加载迁移文件夹中的所有迁移并尝试运行它们?
如果没有,跟踪当前服务器上应运行哪些迁移的最佳实践是什么?
最佳答案
您说的挂起是指尚未在手头数据库上运行的迁移,这是对的。
如果该应用尚未部署,您无需运行迁移来更新数据库。您可以改为更新模型以反射(reflect)您想要的更改。您始终可以在本地删除/创建数据库以使更改显示,但前提是您仍处于开发阶段。
如果您的应用程序已部署,数据库已存在并且您想要更新它,那么当您运行迁移命令时,它将运行迁移文件夹中的每个新文件。如果您正在处理应用程序上的多个环境和协作者,我会将迁移文件保留在该文件夹中。创建并运行新的迁移后,之前的迁移就不会再次运行,因此您无需担心它们。
关于javascript - 我应该在服务器启动时运行所有的 Sequelize 迁移吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23346799/