PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Gibt es eine Möglichkeit, die Flyway-Aufgabe ohne einige Tabellen auszuführen?

Ich hatte dieses Problem für die Testumgebung und wollte das Schema per Flyway löschen. Ich habe es behoben, indem ich die Flyway Spring Bean-Sequenz manipuliert habe. Zuerst habe ich die Postgis-Erweiterung vor flyway.clean() gelöscht und dann in der ersten Zeile von V1__init.sql CREATE EXTENSION postgis SCHEMA public; hinzufügen :

@Bean
@Profile("test")
public Flyway flyway(DataSource dataSource) {
    Flyway flyway = new Flyway();
    flyway.setDataSource(dataSource);
    flyway.setLocations("classpath:db/migration");

    runSql("drop extension IF EXISTS postgis CASCADE;", dataSource);

    flyway.clean();
    flyway.migrate();

    return flyway;
}