Czy Flyway lub Liquibase mogą generować skrypt aktualizacji zamiast bezpośrednio aktualizować bazę danych?

Po pierwsze, trochę tła. Mam zestaw aplikacji Java, niektóre oparte na JPA, inne nie. Aby utworzyć moje bazy danych, aktualnie używam eksportu schematu Hibernates do generowania skryptów dla osób korzystających z JPA. Osoby, które nie używają JPA, generuję skrypty ręcznie. Są one następnie uruchamiane podczas instalacji aplikacji przy użyciu ANT. W przypadku aktualizacji instalator aplikacji po prostu stosuje skrypty aktualizacji do bazy danych.

Aby poprawić zarządzanie aktualizacjami baz danych, przyglądałem się Flyway i Liquibase. Oba wydają się prawie robić to, co chcę, (poza: w tej chwili preferuję Flyway z powodu wszystkich istniejących skryptów SQL / DDL, które mamy). Problem, który widzę, polega na tym, że obie aktualizują bazę danych bezpośrednio. To jest dobre dla wielu instalacji, ale nie dla wszystkich.

Chciałbym uruchomić Flyway / Liquibase przeciwko bazie danych i wygenerować skrypt aktualizacyjny zawierający wszystkie aktualizacje potrzebne do aktualizacji bazy danych - w tym wszelkie zmiany, które Flyway / Liquibase musi wprowadzić do swoich tabel. Pozwoliłoby mi to (lub co ważniejsze administrator bazy danych) uruchomić skrypt aktualizacji poza aplikacjami, aby zaktualizować bazę danych. Mogłem wtedy użyć Flyway / Liquibase w mojej aplikacji wyłącznie w celu sprawdzenia, czy baza danych jest aktualna.

Czy można to zrobić za pomocą Flyway lub Liquibase lub jakiegokolwiek innego narzędzia do tego celu?

questionAnswers(5)

yourAnswerToTheQuestion