Sequelize版本3.30.2-在迁移中执行原始查询

时间:2018-08-21 11:50:03

标签: node.js migration sequelize.js

因此,我必须执行复杂的迁移,对于我的续集版本,我必须使用简单的旧SQL。发生这种情况是因为在版本3.30中QueryInterface不包括addConstraintremoveConstraint

如何在迁移文件中执行原始SQL查询?

迁移

'use strict';

module.exports = {
  up: (queryInterface, Sequelize) => {

    // queryInterface.query does not exist :S
    // queryInterface.raw does not exist :S
    return queryInterface.query(' \
        ALTER TABLE "people" \
        DROP CONSTRAINT "peoplePartners_peopleId_fkey" \
    ');

  },

  down: (queryInterface, Sequelize) => {

  }
};

当然,我的实际查询比上面显示的查询复杂得多,这只是出于解释目的。

如何在Sequelize 3.30中的数据库迁移文件中执行原始查询?

1 个答案:

答案 0 :(得分:0)

背景

queryInterface对象具有sequelize作为属性。

sequelize属性包含query方法。

示例

在迁移中运行原始SQL查询:

module.exports = {
  up: (queryInterface, Sequelize) => {

    return queryInterface.sequelize.query(`
      ALTER TABLE "people"
      DROP CONSTRAINT "peoplePartners_peopleId_fkey"
    `);
  }
}

信用

Unable to execute the raw query in Sequelize migrations