diff options
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 | 40 |
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 */ |