summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/Updater.java
diff options
context:
space:
mode:
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.java40
1 files changed, 40 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 d82e1279..df75e64c 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
@@ -20,6 +20,7 @@ public class Updater {
addPredefinedFilters();
addPredefinedNetworkShares();
addPredefinedRunScripts();
+ addPredefinedNetworkRules();
}
private static void addLectureLocationMapTable() throws SQLException {
@@ -318,6 +319,45 @@ public class Updater {
}
}
+ private static void addPredefinedNetworkRules() throws SQLException {
+ try (MysqlConnection connection = Database.getConnection()) {
+ if (!tableExists(connection, "presetnetworkrule")) {
+ MysqlStatement addStmt = connection.prepareStatement("CREATE TABLE `presetnetworkrule` ("
+ + " `ruleid` int(11) NOT NULL AUTO_INCREMENT,"
+ + " `rulename` varchar(100) NOT NULL,"
+ + " `ruledata` text NOT NULL,"
+ + " PRIMARY KEY (`ruleid`),"
+ + " KEY rulename (`rulename`)"
+ + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci");
+ addStmt.executeUpdate();
+ LOGGER.info("Updated database: Added preset network rules");
+ }
+ if (!tableExists(connection, "lecture_x_networkrule")) {
+ connection.prepareStatement("CREATE TABLE lecture_x_networkrule ("
+ + " lectureid char(36) CHARACTER SET ascii COLLATE ascii_bin NOT NULL,"
+ + " ruleid int(11) NOT NULL,"
+ + " PRIMARY KEY (lectureid,ruleid),"
+ + " KEY ruleid (ruleid)"
+ + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci")
+ .executeUpdate();
+ connection.prepareStatement(
+ "ALTER TABLE lecture_x_networkrule"
+ + " ADD CONSTRAINT lecture_x_networkrule_ibfk_1 FOREIGN KEY (lectureid)"
+ + " REFERENCES lecture (lectureid)"
+ + " ON DELETE CASCADE ON UPDATE CASCADE,"
+ + " ADD CONSTRAINT lecture_x_networkrule_ibfk_2 FOREIGN KEY (ruleid)"
+ + " REFERENCES presetnetworkrule (ruleid)"
+ + " ON DELETE CASCADE ON UPDATE CASCADE")
+ .executeUpdate();
+ LOGGER.info("Updated database: Created lecture_x_networkrule table + constraint");
+ }
+ connection.commit();
+ } catch (SQLException e) {
+ LOGGER.error("Query failed in Updater.addPredefinedNetworkShares()", e);
+ throw e;
+ }
+ }
+
/*
* Helper methods
*/