首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使sequelize.sync()省略某些模型?

如何使sequelize.sync()省略某些模型?
EN

Stack Overflow用户
提问于 2017-02-10 12:46:46
回答 3查看 4.2K关注 0票数 4

我在DB (mysql)中使用表和视图,所以对于dev/test环境,我想使用sync(),但是它会在视图上崩溃。

我能略去这些模型吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-06-18 08:39:28

我刚做了:

代码语言:javascript
运行
复制
const MyView = sequelize.define('myView', {
  ids: {
    type: DataTypes.ARRAY(DataTypes.INTEGER)
  },
  volumeSum: {
    type: DataTypes.INTEGER
  }
});

// To avoid table creation
MyView.sync = () => Promise.resolve();

然后sequelize.sync();没有为视图创建表。希望能帮上忙..。

票数 5
EN

Stack Overflow用户

发布于 2017-02-11 05:53:09

不能通过在主续集中使用同步来跳过模型,

但是,您可以使用模型同步函数,并且只能在您想要同步的模型上调用同步函数。

http://docs.sequelizejs.com/en/latest/api/model/#sync-promisethis

票数 2
EN

Stack Overflow用户

发布于 2017-02-13 10:59:27

好的,正如告诉Keval我需要在模型上同步(),所以我从sequelize.sync()复制/粘贴代码并修改它:

代码语言:javascript
运行
复制
if (config.sync && config.sync != 'false') {
  let models = [];
  sequelize.modelManager.forEachModel(function(model) {
    if (model && model.options.sync !== false) {
      models.push(model);
    } else {
      // DB should throw an SQL error if referencing inexistant table
    }
  });
  return Sequelize.Promise.each(models, function(model) {
    return model.sync(config.sync);
  });
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42159779

复制
相关文章

相似问题

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