web-dev-qa-db-ja.com

Sequelize移行で未加工クエリを実行できません

Sequelizeマイグレーションを使用してデータベースを更新しようとしているので、次のようなSequelizeマイグレーションを作成しようとしました

'use strict';
module.exports = {
  up: (queryInterface, Sequelize, migration) => {
    queryInterface.addColumn('coaching_class_entries', 'bill_cycle', {
      type: Sequelize.INTEGER(4),
      allowNull: false,
      defaultValue: '0',
      field: 'bill_cycle',
      after: 'fees'
    })
      .then(() => queryInterface.addColumn('coaching_classes', 'bill_plans', {
        type: Sequelize.JSON,
        allowNull: false,
        defaultValue: 'NULL',
        field: 'bill_plans',
        after: 'bill_cycle'
      }))
      .then(() =>
        migration.migrator.Sequelize.query('UPDATE coaching_classes  SET bill_plans = JSON_ARRAY(JSON_OBJECT("cycle", bill_cycle, "fee", fees));'));

  },

  down: (queryInterface, Sequelize) => {
    let migrations = [];

    migrations.Push(queryInterface.removeColumn('coaching_class_entries', 'bill_cycle'))
    migrations.Push(queryInterface.removeColumn('coaching_classes', 'bill_plans'))
    return Promise.all(migrations);

  }
};

しかし、未処理のクエリ行で常にエラーが発生します未定義のプロパティ 'Sequelize'を読み取れません

誰かがこれの正しい構文を教えてください

14
Vikas

シンプルなqueryInterface.sequelize.queryを使用する必要があるだけです。

34
Vikas