правильный способ определения или изменения вашей модели в соответствии с миграциями

#sequelize.js

#sequelize.js

Вопрос:

Я главный питон. Я запустил проект node express, и меня путают с командами, которые упорядочивают использование для миграции.

В python flask-migrate вы пишете свою модель, flask db migrate а затем выполняете миграцию в соответствии с написанной вами моделью. Затем, чтобы применить вашу модель к базе данных, вы вводите flask db upgrade команду.

Но я обнаружил, что в Node.js, команды sequelize-cli подразумеваются по-разному. sequelize db:migrate фактически «примените» существующую миграцию, которая соответствует upgrade команде в python flask.

Мои вопросы заключаются в том, какова правильная процедура определения или изменения вашей модели в Node.js? Вы должны сами создать свой класс модели «И» сценарий миграции, а затем запустить db:migrate команду?

Кажется странным, что я должен дважды вносить одни и те же изменения (модель и сценарий миграции), есть ли другой простой способ?

Ответ №1:

Вы можете избежать этой «двойной работы», если полностью обходите миграции и используете метод sequelize.sync (), который строит таблицы на основе ваших моделей.

Недостатком этого является то, что при изменении моделей вам нужно будет передать флаг { force: true } в метод .sync (), чтобы включить новые/измененные атрибуты. Эта опция удаляет ваши таблицы и перестраивает их. Это хорошо для разработки, но неудобно для производства.