202211190031_cascade_delete.sql 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. ALTER TABLE HealthCheckConfig RENAME TO HealthCheckConfig_OLD;
  2. CREATE TABLE HealthCheckConfig(
  3. ID INTEGER PRIMARY KEY AUTOINCREMENT,
  4. ServerID INTEGER NOT NULL,
  5. Type TEXT NOT NULL,
  6. Title TEXT NOT NULL,
  7. CONSTRAINT FK_HealthCheckConfig_Server
  8. FOREIGN KEY(ServerID)
  9. REFERENCES Server(ID)
  10. ON DELETE CASCADE,
  11. UNIQUE(ServerID, Type, Title)
  12. );
  13. INSERT INTO HealthCheckConfig SELECT * FROM HealthCheckConfig_OLD;
  14. DROP TABLE HealthCheckConfig_OLD;
  15. ALTER TABLE HealthCheckParams RENAME TO HealthCheckParams_OLD;
  16. CREATE TABLE HealthCheckParams(
  17. ID INTEGER PRIMARY KEY AUTOINCREMENT,
  18. ConfigID INTEGER NOT NULL,
  19. Type TEXT NOT NULL,
  20. Key TEXT NOT NULL,
  21. Value TEXT NOT NULL,
  22. CONSTRAINT FK_HealthCheckParams_HealthCheckConfig
  23. FOREIGN KEY(ConfigID)
  24. REFERENCES HealthCheckConfig(ID)
  25. ON DELETE CASCADE
  26. );
  27. INSERT INTO HealthCheckParams SELECT * FROM HealthCheckParams_OLD;
  28. DROP TABLE HealthCheckParams_OLD;
  29. ALTER TABLE HealthCheckDataEntry RENAME TO HealthCheckDataEntry_OLD;
  30. CREATE TABLE HealthCheckDataEntry(
  31. ID INTEGER PRIMARY KEY AUTOINCREMENT,
  32. ConfigID INTEGER NOT NULL,
  33. Timestamp INTEGER NOT NULL,
  34. Status INTEGER NOT NULL,
  35. Message TEXT,
  36. CONSTRAINT FK_HealthCheckDataEntry_HealthCheckConfig
  37. FOREIGN KEY(ConfigID)
  38. REFERENCES HealthCheckConfig(ID)
  39. ON DELETE CASCADE,
  40. UNIQUE(ConfigID, Timestamp)
  41. );
  42. INSERT INTO HealthCheckDataEntry SELECT * FROM HealthCheckDataEntry_OLD;
  43. DROP TABLE HealthCheckDataEntry_OLD;
  44. ALTER TABLE ServerConfig RENAME TO ServerConfig_OLD;
  45. CREATE TABLE ServerConfig (
  46. ID INTEGER PRIMARY KEY AUTOINCREMENT,
  47. ServerID INTEGER NOT NULL,
  48. Key TEXT NOT NULL,
  49. Value TEXT NOT NULL,
  50. CONSTRAINT FK_ServerConfig_Server
  51. FOREIGN KEY(ServerID)
  52. REFERENCES Server(ID)
  53. ON DELETE CASCADE,
  54. UNIQUE(ServerID, Key)
  55. );
  56. INSERT INTO ServerConfig SELECT * FROM ServerConfig_OLD;
  57. DROP TABLE ServerConfig_OLD;
  58. ALTER TABLE ServerDataEntry RENAME TO ServerDataEntry_OLD;
  59. CREATE TABLE ServerDataEntry (
  60. ID INTEGER PRIMARY KEY AUTOINCREMENT,
  61. ServerID INTEGER NOT NULL,
  62. Timestamp INTEGER NOT NULL,
  63. CONSTRAINT FK_ServerDataEntry_Server
  64. FOREIGN KEY(ServerID)
  65. REFERENCES Server(ID)
  66. ON DELETE CASCADE,
  67. UNIQUE(ServerID, Timestamp)
  68. );
  69. INSERT INTO ServerDataEntry SELECT * FROM ServerDataEntry_OLD;
  70. DROP TABLE ServerDataEntry_OLD;
  71. ALTER TABLE ServerDataValue RENAME TO ServerDataValue_OLD;
  72. CREATE TABLE ServerDataValue (
  73. ID INTEGER PRIMARY KEY AUTOINCREMENT,
  74. EntryID INTEGER NOT NULL,
  75. Type Text NOT NULL,
  76. Key TEXT NOT NULL,
  77. Value REAL NOT NULL,
  78. CONSTRAINT FK_ServerDataValue_ServerDataEntry
  79. FOREIGN KEY(EntryID)
  80. REFERENCES ServerDataEntry(ID)
  81. ON DELETE CASCADE,
  82. UNIQUE(EntryID, Type, Key)
  83. );
  84. INSERT INTO ServerDataValue SELECT * FROM ServerDataValue_OLD;
  85. DROP TABLE ServerDataValue_OLD;