0
我在使用migrations的Sequelize与CLI命令,例如:sequelize db:migrate
。重命名Sequelize迁移表
如何配置Sequelize以使用不同的表名进行迁移migrations
而不是SequelizeMeta
?
看起来像it could be configured通过umzug
,但是,我不知道使用Sequelize的CLI将此配置传递给它。
我在使用migrations的Sequelize与CLI命令,例如:sequelize db:migrate
。重命名Sequelize迁移表
如何配置Sequelize以使用不同的表名进行迁移migrations
而不是SequelizeMeta
?
看起来像it could be configured通过umzug
,但是,我不知道使用Sequelize的CLI将此配置传递给它。
对于那些不知道的人,也花了一点时间弄清楚。 必须通过umzug的测试来了解发生了什么。
设置尽可能接近sequelize-cli
(不得不深入探索sequilize-cli
),因此您不必更改迁移文件。
我正在使用TypeScript,我希望它不会是一个问题,以了解它是如何工作的。
import * as Sequelize from "sequelize";
import * as Umzug from "umzug";
let dbConfig = {
"dialect": "sqlite",
"storage": "test.db",
"seederStorage": "sequelize"
},
let sequelize = new Sequelize(dbName, username, password, dbConfig);
let umzug = new Umzug({
storage: "sequelize",
storageOptions: {
sequelize: sequelize,
// tableName: "migrations"
tableName: "SequelizeData" // default table name for sequelize-cli `seeder`
},
migrations: {
path: "built/migrations/seeder",
params: [sequelize.getQueryInterface(), sequelize.Sequelize] // arguments for `up` and `down`
}
});
...
umzug.up();
umzug.down();
...
迁移文件:
module.exports = {
up: function (queryInterface: QueryInterface, sequelize: DataTypes) {
return queryInterface.bulkInsert("some_table", {});
},
down: function (queryInterface: QueryInterface, sequelize: DataTypes) {
return queryInterface.bulkDelete("some_table", {});
}
};