V2toV3.sql 13 KB

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