public static enum ImportType {
/**
- * Execute Script as-as
+ * Execute Script as-is
*/
PRODUCTION,
/**
- * Execute Script, but changing Engine=InnoDB to Engine=Memory
+ * Execute Script, but change Engine=InnoDB to Engine=Memory
*/
TEST,
/**
public static void addFile(Statement stmt, InputStream f, ImportType type) throws IOException, SQLException {
String sql = readFile(f);
- sql = sql.replaceAll("--[^\n]+\n", "\n");
+ sql = sql.replaceAll("--[^\n]*\n", "\n");
+ sql = sql.replaceAll("#[^\n]*\n", "\n");
String[] stmts = sql.split(";");
- Pattern p = Pattern.compile("\\s*DROP TABLE IF EXISTS `([^`]+)`");
+ Pattern p = Pattern.compile("\\s*DROP TABLE IF EXISTS \"([^\"]+)\"");
for (String string : stmts) {
Matcher m = p.matcher(string);
string = string.trim();
if (string.equals("")) {
continue;
}
+ if ((string.contains("profiles") || string.contains("cacerts") || string.contains("cats_type")) && type == ImportType.TRUNCATE) {
+ continue;
+ }
+ string = DatabaseConnection.preprocessQuery(string);
if (m.matches() && type == ImportType.TRUNCATE) {
- String sql2 = "TRUNCATE `" + m.group(1) + "`";
+ String sql2 = "DELETE FROM \"" + m.group(1) + "\"";
stmt.addBatch(sql2);
continue;
}
while ((len = f.read(buf)) > 0) {
baos.write(buf, 0, len);
}
- return new String(baos.toByteArray());
+ return new String(baos.toByteArray(), "UTF-8");
}
}