Сценарий: я имею дело с базой данных, которая работает как postgres, так и infobright, где для infobright установлено значение default engine
.
Цель: сделать, чтобы Sequelize создал таблицу в postgres
Проблема: Sequelize создает таблицу в Infobright по умолчанию.
Подробное объяснение:
Итак, когда я пытаюсь определить модель, которая выглядит следующим образом:
sequelize.define('mymodel', {
file_name: {
type: Sequelize.STRING,
}
}, {
schema: 'myschema'
});
Сгенерированный sql выглядит так:
create
table
if not exists "myschema"."mymodel"(
"id" serial,
"file_name" varchar(255),
"createdAt" timestamp with time zone not null,
"updatedAt" timestamp with time zone not null,
primary key("id")
);
ПРИМЕЧАНИЕ. Из-за отсутствия with (engine = postgres)
система пытается создать таблицу в механизме по умолчанию, т.е. infobright, а это не то, чего я ожидаю.
Ожидаемый SQL
create
table
if not exists "myschema"."mymodel"(
"id" serial,
"file_name" varchar(255),
"createdAt" timestamp with time zone not null,
"updatedAt" timestamp with time zone not null,
primary key("id")
) with (
engine = postgres
);
Примечание: выполнение вышеизложенного создает таблицу в postgres.
Я пытался указать двигатель в sequelize, а также в конфигурации модели, но он не работает.
Вопросы: Как мне настроить Sequelize или мою модель, чтобы она генерировала ожидаемый sql. Открыты и для других предложений.