Как указать правильный 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. Как-то решилась это проблема однажды, к сожалению решение не сохранилось.