Liquibase POC
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
package database;
|
||||
|
||||
import liquibase.Liquibase;
|
||||
import liquibase.UpdateSummaryOutputEnum;
|
||||
import liquibase.database.jvm.JdbcConnection;
|
||||
import liquibase.exception.LiquibaseException;
|
||||
import liquibase.resource.ClassLoaderResourceAccessor;
|
||||
import tools.DatabaseConnection;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.SQLException;
|
||||
|
||||
public class DatabaseMigrations {
|
||||
|
||||
public static void runDatabaseMigrations() {
|
||||
suppressLiquibaseLogs();
|
||||
runLiquibaseUpdate();
|
||||
}
|
||||
|
||||
private static void suppressLiquibaseLogs() {
|
||||
java.util.logging.Logger liquibaseLogger = java.util.logging.Logger.getLogger("liquibase");
|
||||
liquibaseLogger.setLevel(java.util.logging.Level.WARNING);
|
||||
}
|
||||
|
||||
private static void runLiquibaseUpdate() {
|
||||
try (Connection connection = DatabaseConnection.getConnection()) {
|
||||
liquibase.database.DatabaseConnection databaseConnection = new JdbcConnection(connection);
|
||||
Liquibase liquibase = new Liquibase("db/changelog.xml", new ClassLoaderResourceAccessor(), databaseConnection);
|
||||
liquibase.setShowSummaryOutput(UpdateSummaryOutputEnum.LOG);
|
||||
liquibase.update();
|
||||
} catch (SQLException | LiquibaseException e) {
|
||||
throw new RuntimeException("Failed to run database migrations", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -36,6 +36,7 @@ import constants.game.GameConstants;
|
||||
import constants.inventory.ItemConstants;
|
||||
import constants.net.OpcodeConstants;
|
||||
import constants.net.ServerConstants;
|
||||
import database.DatabaseMigrations;
|
||||
import database.note.NoteDao;
|
||||
import net.ChannelDependencies;
|
||||
import net.PacketProcessor;
|
||||
@@ -869,6 +870,8 @@ public class Server {
|
||||
throw new IllegalStateException("Failed to initiate a connection to the database");
|
||||
}
|
||||
|
||||
DatabaseMigrations.runDatabaseMigrations();
|
||||
|
||||
channelDependencies = registerChannelDependencies();
|
||||
|
||||
final ExecutorService initExecutor = Executors.newFixedThreadPool(10);
|
||||
|
||||
Reference in New Issue
Block a user