mirror of
https://github.com/ebean-orm/ebean.git
synced 2026-11-14 06:45:21 +00:00
DbMigration is a plugin now
This commit is contained in:
1 parent
803325cb4b
commit
208e987ab5
14 files changed
+284
-87
No files matched your search
+48
@@ -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
|
||||
Reference in new issue
Block a user