DbMigration is a plugin now

This commit is contained in:
Roland Praml committed 2022-01-04 09:47:00 +01:00
1 parent 803325cb4b
commit 208e987ab5
14 files changed
+284 -87

No files matched your search

@@ -0,0 +1,48 @@
package io.ebeaninternal.dbmigration.run;
import io.ebean.config.DatabaseConfig;
import io.ebean.migration.auto.AutoMigrationRunner;
import io.ebean.plugin.Plugin;
import io.ebean.plugin.SpiServer;
import io.ebeaninternal.server.core.ServiceUtil;
public class DbRunMigrationPlugin implements Plugin {
private SpiServer server;
private AutoMigrationRunner migrationRunner;
@Override
public void configure(SpiServer server) {
this.server = server;
DatabaseConfig config = server.config();
if (config.isRunMigration()) {
migrationRunner = ServiceUtil.service(AutoMigrationRunner.class);
if (migrationRunner == null) {
throw new IllegalStateException(
"No AutoMigrationRunner found. Probably ebean-migration is not in the classpath?");
}
final String dbSchema = config.getDbSchema();
if (dbSchema != null) {
migrationRunner.setDefaultDbSchema(dbSchema);
}
migrationRunner.setName(config.getName());
migrationRunner.setPlatform(config.getDatabasePlatform().getPlatform().base().name().toLowerCase());
migrationRunner.loadProperties(config.getProperties());
}
}
@Override
public void online(boolean online) {
}
@Override
public void shutdown() {
}
@Override
public void start() {
migrationRunner.run(server.dataSource());
}
}
@@ -0,0 +1,2 @@
io.ebeaninternal.dbmigration.run.DbRunMigrationPlugin