Liquibase - создание журналов изменений - PullRequest
1 голос
/ 19 октября 2019

Я хочу, чтобы Liquibase генерировал журнал изменений из этой «проверки» БД. Возможно ли это?

У меня уже есть база данных с ее таблицами и данными внутри.

jdbc:mysql://localhost:3306/testing

Теперь я хочу, чтобы Liquibase сгенерировал журнал изменений из этой «тестирования» БД. ,Возможно ли это?

Это моя команда, но она не работает.

liquibase --driver=com.mysql.jdbc.Driver --classpath=C:\mysql-connector-java-5.1.47.jar 
--changeLogFile=C:\db.changelog.xml --url="jdbc:mysql://localhost:3306/testing"
--username=root generateChangeLog

Я не использую пароль.

Ошибка связана с--changeLogFile = C: \ db.changelog.xml

Я думал, что Liquibase будет ссылаться на «тестирование» моей БД и сгенерирует журнал изменений с именем «db.changelog.xml» в папке C.

В какой части я не прав? Я что-то пропускаю?

Или, может быть, Liquibase не предназначен для создания журнала изменений из существующей БД?

Или, может быть, Liquibase предназначен для создания БД только из журнала изменений? А не наоборот?

1 Ответ

0 голосов
/ 21 октября 2019

Это возможно. У вас могут быть проблемы, так как вы пишете в файл в корне вашего диска c :. Вместо этого попробуйте c: \ temp \ changelog.

Мой опыт показывает, что liquibase работает с приращениями. Поэтому, если вы запустите эту команду в своей базе данных, она создаст файл, как если бы все в базе данных было создано в файле изменений (как если бы он начинался с полностью пустой базы данных).

Если вы прочитали текст на сайте Liquibase относительно этой команды , он говорит:

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

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

Я понял, что идея этогозаключается в том, что вы создаете новые записи в файлах изменений и выполняете их для ВСЕХ ваших баз данных, вместо того, чтобы использовать другие инструменты и использовать liquibase для дельты.

...