【问题标题】:Should I run all my sequelize migrations at server startup?我应该在服务器启动时运行我所有的 sequelize 迁移吗?
【发布时间】:2014-06-14 08:04:43
【问题描述】:
【问题讨论】:
标签:
javascript
node.js
database-migration
sequelize.js
【解决方案1】:
您说的对,待定是指尚未在手头的数据库上运行的迁移。
如果该应用尚未部署,您无需运行迁移来更新您的数据库。您可以改为更新模型以反映您想要的更改。您始终可以在本地删除/创建数据库以显示更改,但前提是您仍处于开发阶段。
如果您的应用已部署,数据库已经存在并且您想要更新它,那么当您运行迁移命令时,它将运行迁移文件夹中的每个新文件。如果您在应用程序上处理多个环境和协作者,我会将迁移文件保存在文件夹中。创建并运行新迁移后,之前的迁移不会再次运行,因此您无需担心它们。
【解决方案2】:
Sequelize 会跟踪哪些迁移已在持久存储中运行。对于该存储机制是什么,您有一些选择。
- 将其保存在 JSON 文件中。您可以指定路径和文件名。
- 将其保存在您的数据库中。默认情况下,它将存储在名为
SequelizeMeta 的表中,但您可以更改它。
-
定义通过您创建的模块访问的自定义存储机制。此模块必须使用某些预定义的方法公开对象,例如
logMigration: function (migrationName)
unlogMigration: function (migrationName)
系统将在您的对象上调用这些方法,并期望它在某处存储适当的数据。
Check this out 了解更多信息。