【问题标题】:Define partial index in Sequelize migration?在 Sequelize 迁移中定义部分索引?
【发布时间】:2016-05-28 07:14:24
【问题描述】:

我现在在我的模型定义中使用以下索引:

{
  name: 'unique_partner_id',
  unique: true,
  fields: ['partnerId'],
  where: {
    email: {
      $ne: null
    }
  }
}

但是,我想使用迁移而不是同步,因此我尝试将此定义从模型移动到初始迁移文件。

有一个queryInterface.addIndex() 方法,但是我找不到任何文档。

那么,如何使用queryInterface 定义部分索引?

【问题讨论】:

    标签: node.js database migration sequelize.js


    【解决方案1】:

    我正在寻找如何在模型中执行此操作,而您的问题为我回答了这个问题。所以现在我来为你解答!这是对我有用的 up 函数:

    up: function(queryInterface, Sequelize) {
      return queryInterface.addIndex(
        'tablename',
        ['column1', 'column2'],
        {
          name: 'indexname',
          where: {column3: {[Sequelize.Op.ne]: null}}
        }
      );
    }
    

    【讨论】:

    • 在使用 UUID 列时对我不起作用:ERROR: operator does not exist: uuid = boolean
    【解决方案2】:

    这是一个使用 where 查询语法和运算符的示例:

      up: (queryInterface, Sequelize) => queryInterface.addIndex(
        'column_name',
        ['new_id'],
        {
          name: 'index_name',
          where: { new_id: { [Sequelize.Op.ne]: null } },
        },
      )
    

    【讨论】:

      猜你喜欢
      • 2020-02-16
      • 2017-01-29
      • 2017-06-26
      • 1970-01-01
      • 2019-05-16
      • 2016-02-10
      • 2019-05-25
      • 2017-07-31
      • 1970-01-01
      相关资源
      最近更新 更多