V2toV3.sql 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360
  1. DROP TABLE IF EXISTS route;
  2. CREATE TABLE route (
  3. id INT AUTO_INCREMENT PRIMARY KEY,
  4. name VARCHAR(32),
  5. mins INT
  6. );
  7. DROP TABLE IF EXISTS route_point;
  8. CREATE TABLE route_point (
  9. id INT AUTO_INCREMENT PRIMARY KEY,
  10. route INT NOT NULL DEFAULT 0,
  11. part INT NOT NULL,
  12. place_o INT REFERENCES place.id,
  13. lat_o DOUBLE,
  14. lon_o DOUBLE,
  15. place_d INT REFERENCES place.id,
  16. lat_d DOUBLE,
  17. lon_d DOUBLE,
  18. mins INT,
  19. visible BOOLEAN NOT NULL DEFAULT 1
  20. );
  21. ALTER TABLE sponsor ADD local BOOLEAN NOT NULL DEFAULT 1;
  22. UPDATE sponsor SET local = 0 WHERE address_es IS NULL OR address_es = '';
  23. ALTER TABLE activity_itinerary ADD route INT
  24. ALTER TABLE activity_itinerary MODIFY place INT;
  25. ALTER TABLE festival_day ADD people INT NOT NULL DEFAULT 0;
  26. ALTER TABLE festival_day ADD max_people INT NOT NULL DEFAULT 0;
  27. ALTER TABLE festival_event ADD sponsor INT;
  28. ALTER TABLE festival_event ADD route INT;
  29. ALTER TABLE festival_event MODIFY place INT;
  30. ALTER TABLE version MODIFY section VARCHAR(128);
  31. ALTER TABLE sync DROP action;
  32. ALTER TABLE sync DROP section;
  33. ALTER TABLE sync DROP version_from;
  34. ALTER TABLE sync DROP version_to;
  35. ALTER TABLE sync DROP format;
  36. ALTER TABLE sync ADD synced BOOLEAN NOT NULL DEFAULT 0;
  37. # Populate table version
  38. DELETE FROM version;
  39. INSERT INTO version VALUES ('activity', 1);
  40. INSERT INTO version VALUES ('activity_comment', 1);
  41. INSERT INTO version VALUES ('activity_image', 1);
  42. INSERT INTO version VALUES ('activity_itinerary', 1);
  43. INSERT INTO version VALUES ('activity_tag', 1);
  44. INSERT INTO version VALUES ('album', 1);
  45. INSERT INTO version VALUES ('festival', 1);
  46. INSERT INTO version VALUES ('festival_day', 1);
  47. INSERT INTO version VALUES ('festival_event_city', 1);
  48. INSERT INTO version VALUES ('festival_event_gm', 1);
  49. INSERT INTO version VALUES ('festival_event_image', 1);
  50. INSERT INTO version VALUES ('festival_offer', 1);
  51. INSERT INTO version VALUES ('people', 1);
  52. INSERT INTO version VALUES ('photo', 1);
  53. INSERT INTO version VALUES ('photo_album', 1);
  54. INSERT INTO version VALUES ('photo_comment', 1);
  55. INSERT INTO version VALUES ('place', 1);
  56. INSERT INTO version VALUES ('post', 1);
  57. INSERT INTO version VALUES ('post_comment', 1);
  58. INSERT INTO version VALUES ('post_image', 1);
  59. INSERT INTO version VALUES ('post_tag', 1);
  60. INSERT INTO version VALUES ('settings', 1);
  61. INSERT INTO version VALUES ('sponsor', 1);
  62. # Triggers to update versions
  63. DELIMITER //
  64. CREATE OR REPLACE PROCEDURE version_up (IN section_name VARCHAR(128))
  65. BEGIN
  66. UPDATE version SET version = version + 1 WHERE section = section_name;
  67. END//
  68. CREATE OR REPLACE TRIGGER version_i_activity AFTER INSERT ON activity FOR EACH ROW
  69. BEGIN
  70. CALL version_up('activity');
  71. END//
  72. CREATE OR REPLACE TRIGGER version_d_activity AFTER DELETE ON activity FOR EACH ROW
  73. BEGIN
  74. CALL version_up('activity');
  75. END//
  76. CREATE OR REPLACE TRIGGER version_u_activity AFTER UPDATE ON activity FOR EACH ROW
  77. BEGIN
  78. CALL version_up('activity');
  79. END//
  80. CREATE OR REPLACE TRIGGER version_i_activity_comment AFTER INSERT ON activity_comment FOR EACH ROW
  81. BEGIN
  82. CALL version_up('activity_comment');
  83. END//
  84. CREATE OR REPLACE TRIGGER version_d_activity_comment AFTER DELETE ON activity_comment FOR EACH ROW
  85. BEGIN
  86. CALL version_up('activity_comment');
  87. END//
  88. CREATE OR REPLACE TRIGGER version_u_activity_comment AFTER UPDATE ON activity_comment FOR EACH ROW
  89. BEGIN
  90. CALL version_up('activity_comment');
  91. END//
  92. CREATE OR REPLACE TRIGGER version_i_activity_image AFTER INSERT ON activity_image FOR EACH ROW
  93. BEGIN
  94. CALL version_up('activity_image');
  95. END//
  96. CREATE OR REPLACE TRIGGER version_d_activity_image AFTER DELETE ON activity_image FOR EACH ROW
  97. BEGIN
  98. CALL version_up('activity_image');
  99. END//
  100. CREATE OR REPLACE TRIGGER version_u_activity_image AFTER UPDATE ON activity_image FOR EACH ROW
  101. BEGIN
  102. CALL version_up('activity_image');
  103. END//
  104. CREATE OR REPLACE TRIGGER version_i_activity_itinerary AFTER INSERT ON activity_itinerary FOR EACH ROW
  105. BEGIN
  106. CALL version_up('activity_itinerary');
  107. END//
  108. CREATE OR REPLACE TRIGGER version_d_activity_itinerary AFTER DELETE ON activity_itinerary FOR EACH ROW
  109. BEGIN
  110. CALL version_up('activity_itinerary');
  111. END//
  112. CREATE OR REPLACE TRIGGER version_u_activity_itinerary AFTER UPDATE ON activity_itinerary FOR EACH ROW
  113. BEGIN
  114. CALL version_up('activity_itinerary');
  115. END//
  116. CREATE OR REPLACE TRIGGER version_i_activity_tag AFTER INSERT ON activity_tag FOR EACH ROW
  117. BEGIN
  118. CALL version_up('activity_tag');
  119. END//
  120. CREATE OR REPLACE TRIGGER version_d_activity_tag AFTER DELETE ON activity_tag FOR EACH ROW
  121. BEGIN
  122. CALL version_up('activity_tag');
  123. END//
  124. CREATE OR REPLACE TRIGGER version_u_activity_tag AFTER UPDATE ON activity_tag FOR EACH ROW
  125. BEGIN
  126. CALL version_up('activity_tag');
  127. END//
  128. CREATE OR REPLACE TRIGGER version_i_album AFTER INSERT ON album FOR EACH ROW
  129. BEGIN
  130. CALL version_up('album');
  131. END//
  132. CREATE OR REPLACE TRIGGER version_d_album AFTER DELETE ON album FOR EACH ROW
  133. BEGIN
  134. CALL version_up('album');
  135. END//
  136. CREATE OR REPLACE TRIGGER version_u_album AFTER UPDATE ON album FOR EACH ROW
  137. BEGIN
  138. CALL version_up('album');
  139. END//
  140. CREATE OR REPLACE TRIGGER version_i_festival AFTER INSERT ON festival FOR EACH ROW
  141. BEGIN
  142. CALL version_up('festival');
  143. END//
  144. CREATE OR REPLACE TRIGGER version_d_festival AFTER DELETE ON festival FOR EACH ROW
  145. BEGIN
  146. CALL version_up('festival');
  147. END//
  148. CREATE OR REPLACE TRIGGER version_u_festival AFTER UPDATE ON festival FOR EACH ROW
  149. BEGIN
  150. CALL version_up('festival');
  151. END//
  152. CREATE OR REPLACE TRIGGER version_i_festival_day AFTER INSERT ON festival_day FOR EACH ROW
  153. BEGIN
  154. CALL version_up('festival_day');
  155. END//
  156. CREATE OR REPLACE TRIGGER version_d_festival_day AFTER DELETE ON festival_day FOR EACH ROW
  157. BEGIN
  158. CALL version_up('festival_day');
  159. END//
  160. CREATE OR REPLACE TRIGGER version_u_festival_day AFTER UPDATE ON festival_day FOR EACH ROW
  161. BEGIN
  162. CALL version_up('festival_day');
  163. END//
  164. CREATE OR REPLACE TRIGGER version_i_festival_event AFTER INSERT ON festival_event FOR EACH ROW
  165. BEGIN
  166. IF NEW.gm = 0 THEN
  167. CALL version_up('festival_event_city');
  168. ELSE
  169. CALL version_up('festival_event_gm');
  170. END IF;
  171. END//
  172. CREATE OR REPLACE TRIGGER version_d_festival_event AFTER DELETE ON festival_event FOR EACH ROW
  173. BEGIN
  174. IF OLD.gm = 0 THEN
  175. CALL version_up('festival_event_city');
  176. ELSE
  177. CALL version_up('festival_event_gm');
  178. END IF;
  179. END//
  180. CREATE OR REPLACE TRIGGER version_u_festival_event AFTER UPDATE ON festival_event FOR EACH ROW
  181. BEGIN
  182. IF NEW.gm = 0 THEN
  183. CALL version_up('festival_event_city');
  184. ELSE
  185. CALL version_up('festival_event_gm');
  186. END IF;
  187. END//
  188. CREATE OR REPLACE TRIGGER version_i_festival_event_image AFTER INSERT ON festival_event_image FOR EACH ROW
  189. BEGIN
  190. CALL version_up('festival_event_image');
  191. END//
  192. CREATE OR REPLACE TRIGGER version_d_festival_event_image AFTER DELETE ON festival_event_image FOR EACH ROW
  193. BEGIN
  194. CALL version_up('festival_event_image');
  195. END//
  196. CREATE OR REPLACE TRIGGER version_u_festival_event_image AFTER UPDATE ON festival_event_image FOR EACH ROW
  197. BEGIN
  198. CALL version_up('festival_event_image');
  199. END//
  200. CREATE OR REPLACE TRIGGER version_i_festival_offer AFTER INSERT ON festival_offer FOR EACH ROW
  201. BEGIN
  202. CALL version_up('festival_offer');
  203. END//
  204. CREATE OR REPLACE TRIGGER version_d_festival_offer AFTER DELETE ON festival_offer FOR EACH ROW
  205. BEGIN
  206. CALL version_up('festival_offer');
  207. END//
  208. CREATE OR REPLACE TRIGGER version_u_festival_offer AFTER UPDATE ON festival_offer FOR EACH ROW
  209. BEGIN
  210. CALL version_up('festival_offer');
  211. END//
  212. CREATE OR REPLACE TRIGGER version_i_people AFTER INSERT ON people FOR EACH ROW
  213. BEGIN
  214. CALL version_up('people');
  215. END//
  216. CREATE OR REPLACE TRIGGER version_d_people AFTER DELETE ON people FOR EACH ROW
  217. BEGIN
  218. CALL version_up('people');
  219. END//
  220. CREATE OR REPLACE TRIGGER version_u_people AFTER UPDATE ON people FOR EACH ROW
  221. BEGIN
  222. CALL version_up('people');
  223. END//
  224. CREATE OR REPLACE TRIGGER version_i_photo AFTER INSERT ON photo FOR EACH ROW
  225. BEGIN
  226. CALL version_up('photo');
  227. END//
  228. CREATE OR REPLACE TRIGGER version_d_photo AFTER DELETE ON photo FOR EACH ROW
  229. BEGIN
  230. CALL version_up('photo');
  231. END//
  232. CREATE OR REPLACE TRIGGER version_u_photo AFTER UPDATE ON photo FOR EACH ROW
  233. BEGIN
  234. CALL version_up('photo');
  235. END//
  236. CREATE OR REPLACE TRIGGER version_i_photo_album AFTER INSERT ON photo_album FOR EACH ROW
  237. BEGIN
  238. CALL version_up('photo_album');
  239. END//
  240. CREATE OR REPLACE TRIGGER version_d_photo_album AFTER DELETE ON photo_album FOR EACH ROW
  241. BEGIN
  242. CALL version_up('photo_album');
  243. END//
  244. CREATE OR REPLACE TRIGGER version_u_photo_album AFTER UPDATE ON photo_album FOR EACH ROW
  245. BEGIN
  246. CALL version_up('photo_album');
  247. END//
  248. CREATE OR REPLACE TRIGGER version_i_photo_comment AFTER INSERT ON photo_comment FOR EACH ROW
  249. BEGIN
  250. CALL version_up('photo_comment');
  251. END//
  252. CREATE OR REPLACE TRIGGER version_d_photo_comment AFTER DELETE ON photo_comment FOR EACH ROW
  253. BEGIN
  254. CALL version_up('photo_comment');
  255. END//
  256. CREATE OR REPLACE TRIGGER version_u_photo_comment AFTER UPDATE ON photo_comment FOR EACH ROW
  257. BEGIN
  258. CALL version_up('photo_comment');
  259. END//
  260. CREATE OR REPLACE TRIGGER version_i_place AFTER INSERT ON place FOR EACH ROW
  261. BEGIN
  262. CALL version_up('place');
  263. END//
  264. CREATE OR REPLACE TRIGGER version_d_place AFTER DELETE ON place FOR EACH ROW
  265. BEGIN
  266. CALL version_up('place');
  267. END//
  268. CREATE OR REPLACE TRIGGER version_u_place AFTER UPDATE ON place FOR EACH ROW
  269. BEGIN
  270. CALL version_up('place');
  271. END//
  272. CREATE OR REPLACE TRIGGER version_i_post AFTER INSERT ON post FOR EACH ROW
  273. BEGIN
  274. CALL version_up('post');
  275. END//
  276. CREATE OR REPLACE TRIGGER version_d_post AFTER DELETE ON post FOR EACH ROW
  277. BEGIN
  278. CALL version_up('post');
  279. END//
  280. CREATE OR REPLACE TRIGGER version_u_post AFTER UPDATE ON post FOR EACH ROW
  281. BEGIN
  282. CALL version_up('post');
  283. END//
  284. CREATE OR REPLACE TRIGGER version_i_post_comment AFTER INSERT ON post_comment FOR EACH ROW
  285. BEGIN
  286. CALL version_up('post_comment');
  287. END//
  288. CREATE OR REPLACE TRIGGER version_d_post_comment AFTER DELETE ON post_comment FOR EACH ROW
  289. BEGIN
  290. CALL version_up('post_comment');
  291. END//
  292. CREATE OR REPLACE TRIGGER version_u_post_comment AFTER UPDATE ON post_comment FOR EACH ROW
  293. BEGIN
  294. CALL version_up('post_comment');
  295. END//
  296. CREATE OR REPLACE TRIGGER version_i_post_image AFTER INSERT ON post_image FOR EACH ROW
  297. BEGIN
  298. CALL version_up('post_image');
  299. END//
  300. CREATE OR REPLACE TRIGGER version_d_post_image AFTER DELETE ON post_image FOR EACH ROW
  301. BEGIN
  302. CALL version_up('post_image');
  303. END//
  304. CREATE OR REPLACE TRIGGER version_u_post_image AFTER UPDATE ON post_image FOR EACH ROW
  305. BEGIN
  306. CALL version_up('post_image');
  307. END//
  308. CREATE OR REPLACE TRIGGER version_i_post_tag AFTER INSERT ON post_tag FOR EACH ROW
  309. BEGIN
  310. CALL version_up('post_tag');
  311. END//
  312. CREATE OR REPLACE TRIGGER version_d_post_tag AFTER DELETE ON post_tag FOR EACH ROW
  313. BEGIN
  314. CALL version_up('post_tag');
  315. END//
  316. CREATE OR REPLACE TRIGGER version_u_post_tag AFTER UPDATE ON post_tag FOR EACH ROW
  317. BEGIN
  318. CALL version_up('post_tag');
  319. END//
  320. CREATE OR REPLACE TRIGGER version_i_settings AFTER INSERT ON settings FOR EACH ROW
  321. BEGIN
  322. CALL version_up('settings');
  323. END//
  324. CREATE OR REPLACE TRIGGER version_d_settings AFTER DELETE ON settings FOR EACH ROW
  325. BEGIN
  326. CALL version_up('settings');
  327. END//
  328. CREATE OR REPLACE TRIGGER version_u_settings AFTER UPDATE ON settings FOR EACH ROW
  329. BEGIN
  330. CALL version_up('settings');
  331. END//
  332. CREATE OR REPLACE TRIGGER version_i_sponsor AFTER INSERT ON sponsor FOR EACH ROW
  333. BEGIN
  334. CALL version_up('sponsor');
  335. END//
  336. CREATE OR REPLACE TRIGGER version_d_sponsor AFTER DELETE ON sponsor FOR EACH ROW
  337. BEGIN
  338. CALL version_up('sponsor');
  339. END//
  340. CREATE OR REPLACE TRIGGER version_u_sponsor AFTER UPDATE ON sponsor FOR EACH ROW
  341. BEGIN
  342. CALL version_up('sponsor');
  343. END//
  344. DELIMITER ;