Liquibase POC

This commit is contained in:
P0nk
2025-06-26 15:35:26 +02:00
parent 431eced76a
commit b5eb5dc0b9
5 changed files with 61 additions and 1 deletions
@@ -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);
}
}
}
+3
View File
@@ -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);