2016-05-29 7 views
0

Я хотел бы, чтобы моя версия содержала только последнее определение таблицы в моем репозитории (без изменений), и вы можете определить, какие изменения необходимы для исправления моих баз данных. Пожалуйста, обратите внимание, что у меня очень большая схема базы данных (1000+ таблиц), установленная на сотнях клиентских сайтов с разными версиями, и я действительно не знаю, какие объекты имеют каждая версияИспользование определений таблицы версий версий Liquibase, а не изменений

Как я могу создать на основе linibase для моего приложения, учитывая мой набор определений таблиц и сотни баз данных с примерно 12 различными версиями объектов на каждом из них?

Чтобы быть более конкретным, я хотел бы, чтобы Liquibase сравнивала мои определения таблиц с производственной базой данных и выдавала инструкции alter table, необходимые для того, чтобы сделать базу данных текущей с моей последней версией.

я мог бы внести свой вклад код, если это необходимо для того, чтобы получить это сделано

ответ

0

LiquiBase и инструменты, как его (например flyway) в первую очередь предназначены для поддержки миграции базы данных. Миграция - это то, где каждое изменение в БД отслеживается так, что оно может быть воспроизведено в целевых средах, тем самым сохраняя их в синхронизации с развитием (хотя и с временным сдвигом). Все дело в том, чтобы держать вашу схему под контролем ревизии.

Ваш случай использования немного отличается. Если я правильно понимаю, вы пытаетесь модифицировать Liquibase на ряд сред, которые не на 100% соответствуют текущей схеме вашего приложения?

Я бы рекомендовал только инструменты миграции, такие как Liquibase, если вы намерены использовать их для перемещения вперед. Если все, что вам нужно, это инструмент для разграничения базы данных, я бы предложил вам посмотреть в другом месте.

Чтобы выполнить начальную синхронизацию, я предложил бы вам провести команду diffLog в сочетании с командой changeLogSync для инициализации Liquibase на целевой БД.