init-db.sql 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
  2. SET AUTOCOMMIT = 0;
  3. START TRANSACTION;
  4. SET time_zone = "+01:00";
  5. CREATE DATABASE IF NOT EXISTS `hbbq-monitoring` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  6. CREATE USER 'monitor'@'%' IDENTIFIED BY 'i4mGr00ti4mGr00t';
  7. USE `hbbq-monitoring`;
  8. GRANT ALL PRIVILEGES ON `hbbq-monitoring`.* TO 'monitor'@'%' IDENTIFIED BY 'i4mGr00ti4mGr00t';
  9. CREATE TABLE `Server` (
  10. `ID` INT PRIMARY KEY AUTO_INCREMENT,
  11. `Title` VARCHAR(64) NOT NULL,
  12. `FQDN` VARCHAR(512) NOT NULL,
  13. UNIQUE INDEX UQ_Server_Title (`Title`),
  14. UNIQUE INDEX UQ_Server_FQDN (`FQDN`)
  15. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  16. CREATE TABLE `HealthCheckConfig` (
  17. `ID` INT PRIMARY KEY AUTO_INCREMENT,
  18. `ServerID` INT NOT NULL,
  19. `Type` VARCHAR(16) NOT NULL,
  20. `Title` VARCHAR(512) NOT NULL,
  21. CONSTRAINT FK_HealthCheckConfig_Server FOREIGN KEY(`ServerID`) REFERENCES `Server`(`ID`) ON DELETE CASCADE,
  22. UNIQUE INDEX UQ_HealthCheckConfig_1 (`ServerID`, `Type`, `Title`)
  23. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  24. CREATE TABLE `HealthCheckParams` (
  25. `ID` INT PRIMARY KEY AUTO_INCREMENT,
  26. `ConfigID` INT NOT NULL,
  27. `Type` VARCHAR(16) NOT NULL,
  28. `Key` VARCHAR(32) NOT NULL,
  29. `Value` TEXT NOT NULL,
  30. CONSTRAINT FK_HealthCheckParams_HealthCheckConfig FOREIGN KEY(`ConfigID`) REFERENCES `HealthCheckConfig`(`ID`) ON DELETE CASCADE
  31. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  32. CREATE TABLE `HealthCheckDataEntry` (
  33. `ID` BIGINT PRIMARY KEY AUTO_INCREMENT,
  34. `ConfigID` INT NOT NULL,
  35. `Timestamp` TIMESTAMP NOT NULL,
  36. `Status` SMALLINT NOT NULL,
  37. `Message` TEXT,
  38. CONSTRAINT FK_HealthCheckDataEntry_HealthCheckConfig FOREIGN KEY(`ConfigID`) REFERENCES `HealthCheckConfig`(`ID`) ON DELETE CASCADE
  39. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  40. CREATE TABLE `ServerConfig` (
  41. `ID` INT PRIMARY KEY AUTO_INCREMENT,
  42. `ServerID` INT NOT NULL,
  43. `Key` VARCHAR(32) NOT NULL,
  44. `Value` TEXT NOT NULL,
  45. CONSTRAINT FK_ServerConfig_Server FOREIGN KEY(`ServerID`) REFERENCES `Server`(`ID`) ON DELETE CASCADE,
  46. UNIQUE INDEX UQ_ServerConfig_1(`ServerID`, `Key`)
  47. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  48. CREATE TABLE `ServerDataEntry` (
  49. `ID` BIGINT PRIMARY KEY AUTO_INCREMENT,
  50. `ServerID` INT NOT NULL,
  51. `Timestamp` TIMESTAMP NOT NULL,
  52. CONSTRAINT FK_ServerDataEntry_Server FOREIGN KEY(`ServerID`) REFERENCES `Server`(`ID`) ON DELETE CASCADE,
  53. UNIQUE INDEX UQ_ServerDataEntry_1(`ServerID`, `Timestamp`)
  54. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  55. CREATE TABLE `ServerDataValue` (
  56. `ID` BIGINT PRIMARY KEY AUTO_INCREMENT,
  57. `EntryID` BIGINT NOT NULL,
  58. `Type` VARCHAR(512) NOT NULL,
  59. `Key` VARCHAR(32) NOT NULL,
  60. `Value` DOUBLE NOT NULL,
  61. CONSTRAINT FK_ServerDataValue_ServerDataEntry FOREIGN KEY(`EntryID`) REFERENCES `ServerDataEntry`(`ID`) ON DELETE CASCADE,
  62. UNIQUE INDEX UQ_ServerDataValue_1(`EntryID`, `Type`, `Key`)
  63. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  64. COMMIT;
  65. SET AUTOCOMMIT = 1;