首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在umzug config中传递迁移实例数组

如何在umzug config中传递迁移实例数组
EN

Stack Overflow用户
提问于 2018-05-31 04:29:44
回答 1查看 648关注 0票数 2

我正在使用umzug在我的umzug vue应用程序中运行迁移,因为有了webpack,我不能使用如下路径

代码语言:javascript
复制
migrations: {
    path: __dirname + '/../migrations',
    pattern: /\.js$/
}

我听说我可以传递迁移实例,但我不知道如何做到这一点。

到目前为止,我有这样的想法:

代码语言:javascript
复制
// sequelize initialization, etc...

let migrations = [
    require('../migrations/20180427160552-create-user'),
    require('../migrations/20180515205633-create-visits'),
    require('../migrations/20180515205633-create-vehicles')
];

var Umzug = require('umzug');
var umzug = new Umzug({
    storage: 'sequelize',
    storageOptions: {
    sequelize: sequelize
    },
    migrations: migrations
});
umzug.up().then(function (migrations) { });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-21 04:15:51

您可以使用customResolver

代码语言:javascript
复制
async function checkMigrations() {
  const umzug = new Umzug({
    storage: 'sequelize',
    storageOptions: {
      sequelize,
    },
    migrations: {
      params: [
        sequelize.getQueryInterface(),
        Sequelize,
        function() {
          throw new Error('Migration tried to use old style "done" callback.');
        }
      ],
      path: 'path/to/migrations',
      pattern: /\.js$/,
      customResolver: function(migrationFile) {
        return require(`./migrations/${path.basename(migrationFile, '.js')}`);
      }
    },
    logging: function() {
      console.log.apply(null, arguments);
    },
  });

  return umzug.up();
}

重点是使用"prefix“文件夹作为文本,而不是变量。这将不起作用:

代码语言:javascript
复制
customResolver: function(migrationFile) {
    return require(`${some-path}/${some-file}`);
}

但这将会:

代码语言:javascript
复制
customResolver: function(migrationFile) {
    return require(`/absolute-or-relative-prefix-folder/${filename-based-on-func-argument}`);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50612903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档