/ / Nie można wykonać poleceń przeciwko bazie danych offline, gdy próbuję połączyć się z Oracle offline - mysql, oracle, offline, liquibase

Nie można wykonać poleceń w bazie danych offline, gdy próbuję połączyć Oracle offline - mysql, oracle, offline, liquibase

Używam poniższego kodu:

private static String file="create-table.yml";
public static void main(String[] args) throws Exception {
Database database =createOfflineDatabase("offline:oracle");
Liquibase liquibase = new Liquibase(file, new ClassLoaderResourceAccessor(), database);
liquibase.update("test");
liquibase.dropAll();
}

private static Database createOfflineDatabase(String url) throws Exception {
DatabaseConnection databaseConnection = new OfflineConnection(url, new ClassLoaderResourceAccessor());
return DatabaseFactory.getInstance().openDatabase(url, null, null, null, null);
}

Uzyskiwanie tego wyjątku:

Exception in thread "main" liquibase.exception.MigrationFailedException: Migration failed for change set create-table.yml::create-table.yml::vishwakarma:
Reason: liquibase.exception.DatabaseException: Cannot execute commands against an offline database
at liquibase.changelog.ChangeSet.execute(ChangeSet.java:619)
at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:51)
at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:79)
at liquibase.Liquibase.update(Liquibase.java:214)
at liquibase.Liquibase.update(Liquibase.java:192)
at liquibase.Liquibase.update(Liquibase.java:188)
at liquibase.Liquibase.update(Liquibase.java:181)
at com.test.liquibase.LiquibaseTest.main(LiquibaseTest.java:27)

Czy robię coś złego lub coś brakuje? Proszę pomóż.

Z góry dziękuję

Odpowiedzi:

1 dla odpowiedzi № 1

Bazy danych offline są czymś, co Liquibasewymyślił, aby umożliwić wygenerowanie kodu SQL do aktualizacji bazy danych, której użytkownik liquibase nie jest w stanie bezpośrednio zaktualizować - nie mogą być zaktualizowani. Widzieć ta dokumentacja więcej szczegółów na temat baz danych offline.