Развивам се и съм направил промени в db. Преди да се ангажирам, трябва да добавя промяната към моите набори за промяна. Така че правя liquibase --url="...;name=db_dev" diff
но той ме пита за референтни параметри. Въпреки това не искам да сравнявам url db с друг db. Искам да сравнявам наборите за промени (файлове) с целеви db.
Възможно ли е това?
Отговори:
3 за отговор № 1Мисля, че може да използвате Liquibase по нестандартен начин.
Един очакван модел на използване е, че създавате необходимите промени в схемата, като създавате Liquibase "набор за промени" (в XML, JSON или Liquibase структуриран SQL) и след това използвате liquibase update
да внедрите тази промяна във всеки отделен случай от вашата база данни.
Вторият модел на използване ви прави промени директно в база данни, използвайки какъвто и да е инструмент за манипулиране на база данни, който предпочитате, и след това използвате liquibase diffChangelog
да добавите съответната промяна към вашия файл с промени. След като направите промяната, трябва да използвате liquibase changelogsync
команда за попълване на Liquibase DATABASECHANGELOG
таблицата в базата данни с информацията, че новият набор от промени вече е "разгърнат" в базата данни. Втората употреба изисква:
- сравни две бази данни на живо (например, можете да сравните "тестова" или "етапираща" база данни с която и да е база данни, която сте променили ръчно)
- създайте "моментна снимка" на базата данни, преди да направите ръчна промяна, след това направете промяната и след това сравнете базата данни със снимката. Тази страница в блога на Liquibase описва как да използвате
liquibase snapshot
за да направите моментна снимка и как да използвате тази снимка като "офлайн база данни" за сравнение.
Тази страница е в документацията на Liquibase има някои подробности за моделите на употреба, когато започвате с Liquibase.