Как указать правильный defaultValue для Sequelize.ARRAY(Sequelize.INTEGER)?

Я перехожу с концепции жесткой перезагрузки БД ( sync({ force: true }) ) на миграции.

При создании миграции ( npx sequelize-cli model:generate ... ) и последующей вставкой в БД миграций ( npx sequelize-cli db:migrate ), я получаю следующую ошибку:

Sequelize CLI [Node: 18.10.0, CLI: 6.6.0, ORM: 6.28.0]

Loaded configuration file "config/config.json".
Using environment "development".
== 20230130114154-create-chat: migrating =======

ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[] DEFAULT , `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, PRIMA' at line 1

Мой файл миграции:

"use strict";
/** @type {import('sequelize-cli').Migration} */
module.exports = {
  async up(queryInterface, Sequelize) {
    await queryInterface.createTable("Chat", {
      id: {
        type: Sequelize.INTEGER,
        autoIncrement: true,
        primaryKey: true,
      },
      user_ids: {
        type: Sequelize.ARRAY(Sequelize.INTEGER),
        defaultValue: [],
      },
      createdAt: {
        allowNull: false,
        type: Sequelize.DATE,
      },
      updatedAt: {
        allowNull: false,
        type: Sequelize.DATE,
      },
    });
  },
  async down(queryInterface, Sequelize) {
    await queryInterface.dropTable("Chat");
  },
};

Проблема в том, как распознается строка defaultValue: []. [] - предполагает не массив, а массив значений. К примеру [0] - распознается как 0 для поля по умолчанию, а пустой массив как пустота.

Вопрос заключается в том, как указать значение по умолчанию для поля:

... {
  type: Sequelize.ARRAY(Sequelize.INTEGER),
  defaultValue: ...,
}

Заранее большое спасибо за ответ.

P.S. Как-то решилась это проблема однажды, к сожалению решение не сохранилось.


Ответы (0 шт):