Files
sweetgum-server/src/main/java/database/DatabaseMigrations.java
T
P0nk 42bb664add Support running additional changelogs at the end
In case you want to add your own custom stuff or change drops or something else.
2025-07-14 21:41:39 +02:00

45 lines
1.5 KiB
Java

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;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* Apply changes to the database so that the server and database work in harmony.
*
* @author Ponk
*/
public class DatabaseMigrations {
private static final String ROOT_CHANGELOG_FILE = "db/changelog-root.xml";
public static void runDatabaseMigrations() {
suppressLiquibaseLogs();
runLiquibaseUpdate();
}
private static void suppressLiquibaseLogs() {
Logger liquibaseLogger = Logger.getLogger("liquibase");
liquibaseLogger.setLevel(Level.WARNING);
}
private static void runLiquibaseUpdate() {
try (Connection connection = DatabaseConnection.getConnection()) {
liquibase.database.DatabaseConnection databaseConnection = new JdbcConnection(connection);
Liquibase liquibase = new Liquibase(ROOT_CHANGELOG_FILE, new ClassLoaderResourceAccessor(),
databaseConnection);
liquibase.setShowSummaryOutput(UpdateSummaryOutputEnum.LOG);
liquibase.update();
} catch (SQLException | LiquibaseException e) {
throw new RuntimeException("Failed to run database migrations", e);
}
}
}