V2toV3.sql 13 KB

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