Как сгладить миграцию ликвидазы в файл инициализации схемы? - PullRequest
0 голосов
/ 25 октября 2019

В нашем текущем проекте мы используем liquibase для управления миграцией БД. Наши миграции - это *.sql файлы. В настоящее время у нас имеется 156 таких миграций в master.

Наш проект представляет собой приложение с загрузочной пружиной, и используется БД PostgreSQL 9.6.

Для ускорения инициализации БД при загрузке новых сред (для тестирования идля развития) мы хотели бы объединить все эти миграции в одну. Есть ли автоматический способ сделать это в жидкости? Или мы обязаны экспортировать текущую схему в файл и сбросить журналы изменений вручную?

Ответы [ 2 ]

2 голосов
/ 25 октября 2019

Похоже, было бы полезно профилировать ваш текущий процесс инициализации БД и посмотреть, откуда пришло время. Я не думаю, что взятие ваших 156 sql-файлов и преобразование их в один sql-файл сильно поможет - издержки на простое чтение разных файлов вряд ли являются «самым длинным полюсом в палатке».

1 голос
/ 25 октября 2019

Вы можете сгенерировать журнал изменений из существующей базы данных , как описано в руководстве

Как только вы инициализируете базу данных в нужное вам состояние, вы можете снова запустить Liquibase, используя generateChangeLogв качестве параметра:

liquibase --changeLogFile=complete_migration.postgresql.sql
          --driver=org.postgresql.Driver 
          --classpath=postgresql-42.2.8.jar 
          --url=... 
          --username=... 
          --password=...   generateChangeLog

Будет создан файл с именем complete_migration.postgresql.sql, представляющий текущее состояние базы данных.

Обратите внимание, что я отформатировал команду в несколько строк, от того, как именно вы запускаете многострочную команду, зависит используемая вами операционная система.

...