/ / Чи слід покращувати міграцію файлів моделей оновлення? - sequelize.js, sequelize-cli

Чи слід покращувати міграцію файлів моделей? - sequelize.js, sequelize-cli

Чи послідовність переміщень повинна зберігати ваші файли моделей відповідно до вашої бази даних?

Я використав sequelise cli для завантаження простого проекту та створення моделі node_modules/.bin/sequelize model:generate --name User --attributes email:string. Я перемістив це без проблем.

Потім я створив наступний файл міграції, щоб додати нестандартне обмеження до атрибуту електронної пошти користувача.

оновити міграцію ел

const models = require("../models")

module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.changeColumn(models.User.tableName, "email",{
type: Sequelize.STRING,
allowNull: false,
});
},

down: (queryInterface, Sequelize) => {
return queryInterface.changeColumn(models.User.tableName, "email",{
type: Sequelize.STRING,
});
},
};

Схема бази даних оновлена, щоб додати обмеження, але файл моделі не був. Чи є спосіб автоматичного оновлення файлів моделі під час здійснення міграції?

Відповіді:

3 для відповіді № 1

Чи є спосіб автоматичного оновлення файлів моделі, як ви зробити міграції?

На жаль, немає. Не існує рівня синхронізації між моделями серійних і міграцій, крім їх початкового створення з sequelize model:create. Проте робочий процес, запропонований у цьому питанні, полягає в тому, що оновлення повинні поширюватися від міграції до моделі Це трошки заплутує мене, як правило, міграції повинні автоматично генеруватися від змін до моделей, а не обов'язково навпаки.

Були постійні відкриті проблеми, які відстежують ці функції, які вам можуть допомогти підписатися на:

Спільні пропозиції / рішення:

Відноситься до https://stackoverflow.com/a/28431648/8954866 Як було запропоновано, рішенням є перебудова моделей, що використовують sequelize-cli при внесенні простих змін. Проте, існують чіткі обмеження для цієї методології, тому що багато конфігурацій неможливо визначити з cli, таких як асоціації.

Крім того, пакет npm продовження автоматичних переміщень існує, що забезпечує підтримку для породження міграції, однак це, здається, не надто активний проект.

Висновок:

Чи слід покращувати міграцію файлів моделей?

Sequelize/sequelize-cli ще не підтримує цю функцію.

Чи повинні ОРМ створювати інструменти автоматичного створення міграції? Так, це бажана функціональність, інакше розробники змушені порушувати такі принципи, як СУХИЙ і керувати однією логікою в різних файлах.