Merge pull request #38 from EoD/fix-sophisticated-table-creation

fix database setup without sophisticated backpack
This commit is contained in:
mlus 2025-05-02 00:25:57 +08:00 committed by GitHub
commit 4b7a5dfc1c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -129,30 +129,30 @@ public class PlayerSync {
} }
// Create backpack_data table // Create backpack_data table
if(ModList.get().isLoaded("sophisticatedbackpacks")){ if (ModList.get().isLoaded("sophisticatedbackpacks")) {
JDBCsetUp.executeUpdate( JDBCsetUp.executeUpdate(
"CREATE TABLE IF NOT EXISTS " + dbName + ".backpack_data (" + "CREATE TABLE IF NOT EXISTS " + dbName + ".backpack_data (" +
"uuid CHAR(36) NOT NULL, backpack_nbt MEDIUMBLOB, PRIMARY KEY (uuid)" + "uuid CHAR(36) NOT NULL, backpack_nbt MEDIUMBLOB, PRIMARY KEY (uuid)" +
");", 1 ");", 1
); );
}
// ----- NEW BLOCK: Schema Update for backpack_data and player_data ----- // Check if backpack_data table has the 'uuid' column
// Check if backpack_data table has the 'uuid' column JDBCsetUp.QueryResult backpackColCheck = JDBCsetUp.executeQuery(
JDBCsetUp.QueryResult backpackColCheck = JDBCsetUp.executeQuery( "SELECT COUNT(*) AS colCount FROM INFORMATION_SCHEMA.COLUMNS " +
"SELECT COUNT(*) AS colCount FROM INFORMATION_SCHEMA.COLUMNS " + "WHERE TABLE_SCHEMA = '" + dbName + "' " +
"WHERE TABLE_SCHEMA = '" + dbName + "' " + "AND TABLE_NAME = 'backpack_data' " +
"AND TABLE_NAME = 'backpack_data' " + "AND COLUMN_NAME = 'uuid';"
"AND COLUMN_NAME = 'uuid';" );
); ResultSet rsBackpackCol = backpackColCheck.resultSet();
ResultSet rsBackpackCol = backpackColCheck.resultSet(); if (rsBackpackCol.next() && rsBackpackCol.getInt("colCount") == 0) {
if (rsBackpackCol.next() && rsBackpackCol.getInt("colCount") == 0) { LOGGER.info("Altering backpack_data table to add missing 'uuid' column.");
LOGGER.info("Altering backpack_data table to add missing 'uuid' column."); // Add the missing column and set it as primary key.
// Add the missing column and set it as primary key. JDBCsetUp.executeUpdate("ALTER TABLE " + dbName + ".backpack_data ADD COLUMN uuid CHAR(36) NOT NULL", 1);
JDBCsetUp.executeUpdate("ALTER TABLE " + dbName + ".backpack_data ADD COLUMN uuid CHAR(36) NOT NULL", 1); JDBCsetUp.executeUpdate("ALTER TABLE " + dbName + ".backpack_data ADD PRIMARY KEY (uuid)", 1);
JDBCsetUp.executeUpdate("ALTER TABLE " + dbName + ".backpack_data ADD PRIMARY KEY (uuid)", 1); }
rsBackpackCol.close();
backpackColCheck.connection().close();
} }
rsBackpackCol.close();
// Check and alter the 'advancements' column in player_data if necessary // Check and alter the 'advancements' column in player_data if necessary
JDBCsetUp.QueryResult advColCheck = JDBCsetUp.executeQuery( JDBCsetUp.QueryResult advColCheck = JDBCsetUp.executeQuery(