diff options
author | Simon Rettberg | 2016-04-25 14:03:16 +0200 |
---|---|---|
committer | Simon Rettberg | 2016-04-25 14:03:16 +0200 |
commit | 08ec030b7b1a3468910b0e74e6f643f5c6d3436f (patch) | |
tree | 04e62b02b7520bc43e963fa6d50ac7c81bad2e47 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/Updater.java | |
parent | [server] Fix query of addHasUsbAccessField() (diff) | |
download | tutor-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.java | 26 |
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; + } + } } |