Skip to content

Commit 42de1a9

Browse files
committed
TableInitializer 修正
1 parent 120045d commit 42de1a9

File tree

2 files changed

+21
-11
lines changed

2 files changed

+21
-11
lines changed

pom.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,6 @@
110110
<artifactId>mariadb-java-client</artifactId>
111111
<version>3.5.3</version>
112112
</dependency>
113-
114113
</dependencies>
115114

116115
<distributionManagement>

src/main/java/dev/felnull/DataIO/TableInitializer.java

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,12 @@ public static void initTables() {
1919
// グループの基本情報(UUID主キー+表示名+バージョンなど)
2020
stmt.executeUpdate(
2121
"CREATE TABLE IF NOT EXISTS group_table (" +
22-
"group_uuid VARCHAR(255) PRIMARY KEY, " + // 内部識別子(UUID)
23-
"group_name VARCHAR(255) UNIQUE NOT NULL, " + // 論理名(内部参照に使う)
24-
"display_name VARCHAR(255), " + // 表示名(ユーザー向け)
25-
"is_private BOOLEAN NOT NULL, " + // 非公開グループかどうか
26-
"owner_plugin VARCHAR(255), " + // このグループを扱うプラグイン名
22+
"group_uuid VARCHAR(255) PRIMARY KEY, " + // 内部識別子(UUID)
23+
"group_name VARCHAR(255) UNIQUE NOT NULL, " + // 論理名(内部参照に使う)
24+
"display_name VARCHAR(255), " + // 表示名(ユーザー向け)
25+
"is_private BOOLEAN NOT NULL, " + // 非公開グループかどうか
26+
"owner_plugin VARCHAR(255), " + // このグループを扱うプラグイン名
27+
"ecp_imported TINYINT(1) NOT NULL DEFAULT 0 " + // ECPからインポート済みかどうか
2728
");"
2829
);
2930

@@ -292,13 +293,23 @@ private static String getTableNameFromIndex(String indexName) {
292293
* @param columnDefinition カラムの定義(例: "BOOLEAN NOT NULL DEFAULT FALSE")
293294
*/
294295
private static void addColumnIfNotExists(Connection conn, String tableName, String columnName, String columnDefinition) {
295-
try (ResultSet rs = conn.getMetaData().getColumns(null, null, tableName, columnName)) {
296-
if (!rs.next()) {
297-
try (Statement stmt = conn.createStatement()) {
298-
stmt.executeUpdate("ALTER TABLE " + tableName + " ADD COLUMN " + columnName + " " + columnDefinition);
299-
LOGGER.info("[BetterStorage] " + tableName + " にカラム '" + columnName + "' を追加したにゃ!");
296+
try {
297+
boolean exists = false;
298+
try (ResultSet rs = conn.getMetaData().getColumns(null, null, tableName, columnName)) {
299+
exists = rs.next();
300+
}
301+
if (!exists) {
302+
try (ResultSet rs = conn.getMetaData().getColumns(null, null, tableName.toUpperCase(), columnName.toUpperCase())) {
303+
exists = rs.next();
300304
}
301305
}
306+
if (exists) return;
307+
308+
String sql = "ALTER TABLE `" + tableName + "` ADD COLUMN `" + columnName + "` " + columnDefinition;
309+
try (Statement stmt = conn.createStatement()) {
310+
stmt.executeUpdate(sql);
311+
LOGGER.info("[BetterStorage] " + tableName + " にカラム '" + columnName + "' を追加したにゃ!");
312+
}
302313
} catch (SQLException e) {
303314
LOGGER.warning("[BetterStorage] " + tableName + " のカラム '" + columnName + "' チェック中にエラーが起きたにゃ: " + e.getMessage());
304315
}

0 commit comments

Comments
 (0)