|
|
@@ -21,6 +21,8 @@ import static org.cobbzilla.util.time.TimeUtil.DATE_FORMAT_YYYYMMDD; |
|
|
|
@Slf4j |
|
|
|
public class FlywayMigrationListener<C extends RestServerConfiguration> extends RestServerLifecycleListenerBase<C> { |
|
|
|
|
|
|
|
public static final String FLYWAY_TABLE_NAME = "flyway_schema_history"; |
|
|
|
public static final MigrationResolver[] EMPTY_MIGRATION_RESOLVERS = new MigrationResolver[0]; |
|
|
|
protected RestServer server; |
|
|
|
|
|
|
|
@Override public void beforeStart(RestServer server) { |
|
|
@@ -35,15 +37,17 @@ public class FlywayMigrationListener<C extends RestServerConfiguration> extends |
|
|
|
protected boolean skipDefaultResolvers() { return false; } |
|
|
|
protected MigrationResolver[] getResolvers() { return null; } |
|
|
|
|
|
|
|
public String getBaselineVersion() { return DATE_FORMAT_YYYYMMDD.print(now())+"99"; } |
|
|
|
|
|
|
|
public void migrate(PgRestServerConfiguration configuration) { |
|
|
|
|
|
|
|
// check to see if flyway tables exist |
|
|
|
boolean baseline = false; |
|
|
|
try { |
|
|
|
configuration.execSql("SELECT * from flyway_schema_history"); |
|
|
|
configuration.execSql("SELECT * from " + FLYWAY_TABLE_NAME); |
|
|
|
} catch (UncheckedSqlException e) { |
|
|
|
if (e.getSqlException() != null && e.getSqlException() instanceof PSQLException && e.getMessage().contains(" does not exist")) { |
|
|
|
log.warn("schema_version table does not exist, will baseline DB"); |
|
|
|
log.warn(FLYWAY_TABLE_NAME + " table does not exist, will baseline DB"); |
|
|
|
baseline = true; |
|
|
|
} else { |
|
|
|
throw e; |
|
|
@@ -58,7 +62,7 @@ public class FlywayMigrationListener<C extends RestServerConfiguration> extends |
|
|
|
.skipDefaultResolvers(skipDefaultResolvers()) |
|
|
|
.resolvers(resolvers != null ? resolvers : new MigrationResolver[0]) |
|
|
|
.baselineOnMigrate(baseline) |
|
|
|
.baselineVersion(MigrationVersion.fromVersion(DATE_FORMAT_YYYYMMDD.print(now())))); |
|
|
|
.baselineVersion(MigrationVersion.fromVersion(getBaselineVersion()))); |
|
|
|
|
|
|
|
int applied; |
|
|
|
try { |
|
|
|