mirror of
https://github.com/songoda/SongodaCore.git
synced 2024-10-22 20:30:41 +02:00
Fix converting errors for EpicFarming and EpicHoppers
This commit is contained in:
parent
e642980c2c
commit
55a29c2af1
@ -3,6 +3,7 @@ package com.craftaro.core.database;
|
|||||||
import com.craftaro.core.SongodaPlugin;
|
import com.craftaro.core.SongodaPlugin;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.sql.Blob;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DatabaseMetaData;
|
import java.sql.DatabaseMetaData;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
@ -73,6 +74,11 @@ public abstract class DataMigration {
|
|||||||
String columnName = metaRs.getColumnName(i);
|
String columnName = metaRs.getColumnName(i);
|
||||||
String columnType = metaRs.getColumnTypeName(i);
|
String columnType = metaRs.getColumnTypeName(i);
|
||||||
int columnSize = metaRs.getColumnDisplaySize(i);
|
int columnSize = metaRs.getColumnDisplaySize(i);
|
||||||
|
//Fix EpicHoppers BIT column type from corrupted db
|
||||||
|
if (columnType.equals("BIT") && plugin.getName().toLowerCase().equals("epichoppers")) {
|
||||||
|
columnType = "VARCHAR";
|
||||||
|
columnSize = 20;
|
||||||
|
}
|
||||||
|
|
||||||
createTableQuery.append(columnName).append(" ").append(columnType).append("(").append(columnSize).append(")");
|
createTableQuery.append(columnName).append(" ").append(columnType).append("(").append(columnSize).append(")");
|
||||||
|
|
||||||
@ -96,6 +102,9 @@ public abstract class DataMigration {
|
|||||||
insertQuery.append("NULL");
|
insertQuery.append("NULL");
|
||||||
} else if (value instanceof String || value instanceof Timestamp) {
|
} else if (value instanceof String || value instanceof Timestamp) {
|
||||||
insertQuery.append("'").append(value instanceof String ? ((String) value).replaceAll("'", "''") : value).append("'");
|
insertQuery.append("'").append(value instanceof String ? ((String) value).replaceAll("'", "''") : value).append("'");
|
||||||
|
} else if (value instanceof byte[]) {
|
||||||
|
// Handle BLOB columns
|
||||||
|
insertQuery.append("X'").append(bytesToHex((byte[]) value)).append("'");
|
||||||
} else {
|
} else {
|
||||||
insertQuery.append(value);
|
insertQuery.append(value);
|
||||||
}
|
}
|
||||||
@ -158,4 +167,14 @@ public abstract class DataMigration {
|
|||||||
columns.setLength(columns.length() - 2);
|
columns.setLength(columns.length() - 2);
|
||||||
return columns.toString();
|
return columns.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Utility method to convert byte array to hexadecimal string
|
||||||
|
private static String bytesToHex(byte[] bytes) {
|
||||||
|
StringBuilder hexString = new StringBuilder();
|
||||||
|
for (byte b : bytes) {
|
||||||
|
hexString.append(String.format("%02x", b));
|
||||||
|
}
|
||||||
|
return hexString.toString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user