目前我已经开始使用NODE JS,我正在使用SEQUELIZE ORM。 Sequelize确实使用sequelize-cli支持迁移,但文档没有解释有关如何使用迁移的每个细节。我想知道是否可以使用Sequelize CLI进行以下操作。考虑到PROD部署,以下几点非常重要
我已经阅读了文档,但它没有探讨上述任何一点。请帮帮我,我
答案 0 :(得分:2)
使用迁移的想法是它们是您数据库的王者。它们是唯一可以改变数据库模式的方法,只需要更改数据库模式就是运行迁移。
回答你的问题:
<强> 1。通过查看模型
自动生成迁移文件唐&#39;吨。手动生成迁移。如果您要更改特定表的列,请先生成迁移,然后再修改相应的模型。迁移是数据库的王者。模特排在第二位。
<强> 2。自动生成基于对模型进行的新更改的迁移文件
唐&#39;吨。与上述相同。
第3。生成迁移的SQL脚本,以便我们可以在PROD上运行
唐&#39;吨。您应该能够直接在生产环境中运行迁移,连接到生产数据库,就像您使用sequelize db:migrate
在dev中运行它们一样。每次将新代码推送到生产环境时,您的部署脚本都应自动在生产数据库上运行sequelize db:migrate
。
<强> 4。特定于环境的迁移(Dev,Stage,Prod)
绝对不要。每次迁移都应该在每个环境中运行。无论环境如何,您的数据库都应具有相同的模式。
更新:这是一个示例migartion,它可以运行(向上和向下运行)以添加新的布尔列:
'use strict';
module.exports = {
up: function (queryInterface, Sequelize) {
return queryInterface.addColumn(
'my_table',
'my_new_column',
{
type: Sequelize.BOOLEAN,
}
)
},
down: function (queryInterface, Sequelize) {
return queryInterface.removeColumn('my_table', 'my_new_column')
}
};