summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/Updater.java
diff options
context:
space:
mode:
authorSimon Rettberg2016-04-25 14:03:16 +0200
committerSimon Rettberg2016-04-25 14:03:16 +0200
commit08ec030b7b1a3468910b0e74e6f643f5c6d3436f (patch)
tree04e62b02b7520bc43e963fa6d50ac7c81bad2e47 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/Updater.java
parent[server] Fix query of addHasUsbAccessField() (diff)
downloadtutor-module-08ec030b7b1a3468910b0e74e6f643f5c6d3436f.tar.gz
tutor-module-08ec030b7b1a3468910b0e74e6f643f5c6d3436f.tar.xz
tutor-module-08ec030b7b1a3468910b0e74e6f643f5c6d3436f.zip
[server] Add update query to make email field longer
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/Updater.java')
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/Updater.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/Updater.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/Updater.java
index 62f1f5a4..abb2f665 100644
--- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/Updater.java
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/Updater.java
@@ -13,6 +13,7 @@ public class Updater {
addLocationPrivateField();
addLectureLocationMapTable();
addHasUsbAccessField();
+ fixEmailFieldLength();
}
private static void addLectureLocationMapTable() throws SQLException {
@@ -85,4 +86,29 @@ public class Updater {
throw e;
}
}
+
+ /**
+ * Make email field longer. Was 50 chars, which is not enough in rare cases
+ * :)
+ */
+ private static void fixEmailFieldLength() throws SQLException {
+ try (MysqlConnection connection = Database.getConnection()) {
+ MysqlStatement checkStmt = connection.prepareStatement("DESCRIBE user");
+ ResultSet cols = checkStmt.executeQuery();
+ while (cols.next()) {
+ if (cols.getString("Field").equals("email")
+ && "varchar(100)".equalsIgnoreCase(cols.getString("Type"))) {
+ return; // Field exists and has proper type, don't do anything
+ }
+ }
+ MysqlStatement upStmt = connection.prepareStatement("ALTER TABLE user CHANGE email"
+ + " email VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL");
+ upStmt.executeUpdate();
+ connection.commit();
+ LOGGER.info("Updated database: Made email field longer");
+ } catch (SQLException e) {
+ LOGGER.error("Query failed in Updater.fixEmailFieldLength()", e);
+ throw e;
+ }
+ }
}