Если я использую миграцию SQLAlchemy, как мне получить окончательную полную схему в 1 файле? - PullRequest
0 голосов
/ 23 ноября 2011

Я новичок в SQLAlchemy и миграциях. В принципе, что я понимаю это так:

  • Создание базы models.py с базовой структурой таблиц.
  • Когда я расширяю свои таблицы / столбцы, я создаю «скрипт миграции» (с обновлением / понижением)
  • Я продолжаю делать это и продолжаю создавать эти сценарии

Довольно скоро у меня будет около 50 сценариев ... верно?

Но я все еще хочу 1 файл, который определяет схему. Так что я могу посмотреть на файл и узнать свою собственную схему. Прямо сейчас, если я открою models.py, я увижу основную структуру, которую я построил давным-давно ...

1 Ответ

0 голосов
/ 23 ноября 2011

Возможно, есть несколько решений, но один из способов сделать это - отделить «модель» от миграций.

Держите модель в актуальном состоянии. Отредактируйте это свободно во время разработки, чтобы получить желаемую функциональность. Но прежде чем приступить к редактированию, сначала сделайте копию и отложите ее в сторону (проницательные читатели, вероятно, называют этот источник контроля).

Как только вы обнаружите окончательную версию новой функции, которую вы реализуете, и у вас есть хорошее представление о том, какие функции вам нужно добавить в сценарий миграции, откройте старую версию модели и обрежьте это касается только таблиц, которые вы пытаетесь изменить. Включите урезанные модели в сам скрипт миграции.

Другой вариант - сильно полагаться на отражение таблицы в модуле основных моделей. Скрипты миграции вообще не взаимодействуют с ними, вместо этого они полностью описывают таблицы, которые они переносят внутри каждого скрипта. Это дает преимущество в том, что модели (в основном) работают хорошо на любой версии схемы, на которой вы можете работать. Недостатком является то, что полное отражение схемы замедлит запуск приложения, иногда значительно.

...