V2toV3.sql 13 KB

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