我正在使用sequelize js
并开发一个node js application
,它已部署到生产环境并具有实时数据库。
在开发模式下,如果我需要alter
,DB
我曾经使用它来完成它Sequelize.sync({ force: true })
,并且效果很好。
但是现在,在开发完成后,我想更改一个表并为其添加一列。
我搜索了很多帖子,但没有得到关于如何运行这些迁移的确切示例。
我尝试使用Umzug
并运行迁移,但它给我带来了错误。
这是我尝试过的代码,
迁移/barmigration.js:
var Sequelize = require('sequelize');
"use strict";
module.exports = {
up: function(migration, DataTypes) {
return [
migration.addColumn(
'Bars',
'PrinterId',
Sequelize.STRING
),
migration.addColumn(
'Bars',
'PrinterStatus',
Sequelize.STRING
)]
},
down: function(migration, DataTypes) {
return
[
migration.removeColumn('Bars', 'PrinterStatus'),
migration.removeColumn('Bars', 'PrinterId')
]
}
};
这是umzug configuration
:
var Umzug = require('umzug');
var sequelize = require('sequelize');
var umzug = new Umzug({
// storage: 'sequelize',
model: 'Bar',
storageOptions: {
sequelize: sequelize,
},
migrations: {
path: './migrations',
pattern: /\.js$/
}
});
// umzug.up().then(function(migrations) {
// console.log('Migration complete!');
// });
umzug.down().then(function(migrations) {
console.log('Migration complete!');
});
当我运行该文件时up function
,在这个位置出现错误return migration.addColumn
错误:
Unhandled rejection TypeError: Cannot read property 'addColumn' of undefined
所以,参数迁移似乎是undefined
. 请帮帮我。