Как масштабировать Play2 Evolutions

Я недавно начал использовать Play2 в проекте и прочитал раздел об эволюции. И хотя приведенный ими пример выглядит неплохо, если бы в моем проекте была 1 таблица, кажется, что было бы очень грязно, если бы у меня было 10-20 таблиц в 1.sql а затем изменения в них распались 2.sql, 3.sql и так далее.

В Ruby on Rails, Symfony и других вы определяете миграцию вверх / вниз для каждой сущности.

Мой вопрос: как лучше всего настроить эволюцию в Play2? Должны ли я иметь все свои таблицы в 1.sql а затем внести в них небольшие изменения 2.sql и так далее? Или есть способ иметь отдельный .sql файл для каждой таблицы?

Кроме того, есть ли примеры крупных проектов Play2 с открытым исходным кодом, где я мог видеть, как это будет выглядеть?

1 ответ

На самом деле Play не имеет возможности делить эволюции по сущностям.

ИМХО, это скорее вопрос вкуса, вы можете добавить каждую сущность в одну следующую эволюцию, в любом случае единственная разница будет в том, что счетчик эволюции будет больше, я не думаю, что это поможет вам сохранить эволюцию чище.

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

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

После этого вам нужно отключить автоматические обновления, так как они отбрасывают всю БД и воссоздают таблицы с нуля (в Ebean обновление схемы diff отсутствует).

Это тоже дело вкуса, но я предпочитаю объединять несколько изменений в одну эволюцию (так что опять планируем...) вместо того, чтобы создавать следующие и следующие файлы для каждого отдельного изменения ad hoc.

Другие вопросы по тегам