summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/org
diff options
context:
space:
mode:
authorJonathan Bauer2017-09-11 14:14:09 +0200
committerJonathan Bauer2017-09-11 14:14:09 +0200
commit36d29c0e7761d30b90a387a9b5c3b8aabc3be415 (patch)
tree40234adceca0fe2e93657e53dc4002a9fa6af71d /dozentenmodulserver/src/main/java/org
parent[client/server] make all netshare fields mandatory (diff)
downloadtutor-module-36d29c0e7761d30b90a387a9b5c3b8aabc3be415.tar.gz
tutor-module-36d29c0e7761d30b90a387a9b5c3b8aabc3be415.tar.xz
tutor-module-36d29c0e7761d30b90a387a9b5c3b8aabc3be415.zip
[server] add network shares table (updater)
Diffstat (limited to 'dozentenmodulserver/src/main/java/org')
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/Updater.java35
1 files changed, 35 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 e0721e97..c7a77882 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
@@ -15,6 +15,7 @@ public class Updater {
addHasUsbAccessField();
addLogTable();
fixEmailFieldLength();
+ addNetworkShares();
}
private static void addLectureLocationMapTable() throws SQLException {
@@ -147,4 +148,38 @@ public class Updater {
throw e;
}
}
+
+ private static void addNetworkShares() throws SQLException {
+ try (MysqlConnection connection = Database.getConnection()) {
+ MysqlStatement tablesStmt = connection.prepareStatement("SHOW TABLES");
+ ResultSet tables = tablesStmt.executeQuery();
+ while (tables.next()) {
+ if (tables.getString(1).equals("networkshares")) {
+ return; // Table exists, don't do anything
+ }
+ }
+ // Add table
+ MysqlStatement tableAddStmt = connection.prepareStatement(
+ "CREATE TABLE `networkshare` ("
+ + " `shareid` int(11) NOT NULL AUTO_INCREMENT,"
+ + " `lectureid` char(36) CHARACTER SET ascii COLLATE ascii_bin NOT NULL,"
+ + " `shareuid` char(36) CHARACTER SET ascii COLLATE ascii_bin DEFAULT NULL,"
+ + " `sharedata` varchar(200) COLLATE utf8mb4_unicode_ci DEFAULT NULL,"
+ + " PRIMARY KEY (`shareid`),"
+ + " KEY `fk_lectureid_1` (`lectureid`)"
+ + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci");
+ tableAddStmt.executeUpdate();
+ // Add constraint
+ MysqlStatement constraintStmt = connection.prepareStatement(
+ "ALTER TABLE `networkshare` ADD CONSTRAINT `fk_lectureid_1`"
+ + " FOREIGN KEY (`lectureid`) REFERENCES `sat`.`lecture` (`lectureid`)"
+ + " ON DELETE CASCADE ON UPDATE CASCADE");
+ constraintStmt.executeUpdate();
+ connection.commit();
+ LOGGER.info("Updated database: Added networkshare table");
+ } catch (SQLException e) {
+ LOGGER.error("Query failed in Updater.addNetworkShares()", e);
+ throw e;
+ }
+ }
}