PageRenderTime 25ms CodeModel.GetById 9ms RepoModel.GetById 0ms app.codeStats 0ms

/etc/changes/migration_tables_core_538.php

https://bitbucket.org/blackriver/openx
PHP | 318 lines | 236 code | 57 blank | 25 comment | 7 complexity | df7c62104939293feb6b9d18edf80021 MD5 | raw file
  1. <?php
  2. /*
  3. +---------------------------------------------------------------------------+
  4. | OpenX v2.8 |
  5. | ========== |
  6. | |
  7. | Copyright (c) 2003-2009 OpenX Limited |
  8. | For contact details, see: http://www.openx.org/ |
  9. | |
  10. | This program is free software; you can redistribute it and/or modify |
  11. | it under the terms of the GNU General Public License as published by |
  12. | the Free Software Foundation; either version 2 of the License, or |
  13. | (at your option) any later version. |
  14. | |
  15. | This program is distributed in the hope that it will be useful, |
  16. | but WITHOUT ANY WARRANTY; without even the implied warranty of |
  17. | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
  18. | GNU General Public License for more details. |
  19. | |
  20. | You should have received a copy of the GNU General Public License |
  21. | along with this program; if not, write to the Free Software |
  22. | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
  23. +---------------------------------------------------------------------------+
  24. $Id: migration_tables_core_538.php 81772 2012-09-11 00:07:29Z chris.nutting $
  25. */
  26. require_once(MAX_PATH.'/lib/OA/Upgrade/Migration.php');
  27. class Migration_538 extends Migration
  28. {
  29. function Migration_538()
  30. {
  31. //$this->__construct();
  32. $this->aTaskList_constructive[] = 'beforeAddField__data_intermediate_ad__date_time';
  33. $this->aTaskList_constructive[] = 'afterAddField__data_intermediate_ad__date_time';
  34. $this->aTaskList_constructive[] = 'beforeAddIndex__data_intermediate_ad__ad_id_date_time';
  35. $this->aTaskList_constructive[] = 'afterAddIndex__data_intermediate_ad__ad_id_date_time';
  36. $this->aTaskList_constructive[] = 'beforeAddIndex__data_intermediate_ad__zone_id_date_time';
  37. $this->aTaskList_constructive[] = 'afterAddIndex__data_intermediate_ad__zone_id_date_time';
  38. $this->aTaskList_constructive[] = 'beforeAddIndex__data_intermediate_ad__date_time';
  39. $this->aTaskList_constructive[] = 'afterAddIndex__data_intermediate_ad__date_time';
  40. $this->aTaskList_constructive[] = 'beforeAddIndex__data_intermediate_ad__interval_start';
  41. $this->aTaskList_constructive[] = 'afterAddIndex__data_intermediate_ad__interval_start';
  42. $this->aTaskList_constructive[] = 'beforeRemoveIndex__data_intermediate_ad__data_intermediate_ad_day';
  43. $this->aTaskList_constructive[] = 'afterRemoveIndex__data_intermediate_ad__data_intermediate_ad_day';
  44. $this->aTaskList_constructive[] = 'beforeRemoveIndex__data_intermediate_ad__data_intermediate_ad_operation_interval_id';
  45. $this->aTaskList_constructive[] = 'afterRemoveIndex__data_intermediate_ad__data_intermediate_ad_operation_interval_id';
  46. $this->aTaskList_constructive[] = 'beforeRemoveIndex__data_intermediate_ad__data_intermediate_ad_ad_id';
  47. $this->aTaskList_constructive[] = 'afterRemoveIndex__data_intermediate_ad__data_intermediate_ad_ad_id';
  48. $this->aTaskList_constructive[] = 'beforeRemoveIndex__data_intermediate_ad__data_intermediate_ad_zone_id';
  49. $this->aTaskList_constructive[] = 'afterRemoveIndex__data_intermediate_ad__data_intermediate_ad_zone_id';
  50. $this->aTaskList_constructive[] = 'beforeAddField__data_summary_ad_hourly__date_time';
  51. $this->aTaskList_constructive[] = 'afterAddField__data_summary_ad_hourly__date_time';
  52. $this->aTaskList_constructive[] = 'beforeAddIndex__data_summary_ad_hourly__date_time';
  53. $this->aTaskList_constructive[] = 'afterAddIndex__data_summary_ad_hourly__date_time';
  54. $this->aTaskList_constructive[] = 'beforeAddIndex__data_summary_ad_hourly__ad_id_date_time';
  55. $this->aTaskList_constructive[] = 'afterAddIndex__data_summary_ad_hourly__ad_id_date_time';
  56. $this->aTaskList_constructive[] = 'beforeAddIndex__data_summary_ad_hourly__zone_id_date_time';
  57. $this->aTaskList_constructive[] = 'afterAddIndex__data_summary_ad_hourly__zone_id_date_time';
  58. $this->aTaskList_constructive[] = 'beforeRemoveIndex__data_summary_ad_hourly__data_summary_ad_hourly_day';
  59. $this->aTaskList_constructive[] = 'afterRemoveIndex__data_summary_ad_hourly__data_summary_ad_hourly_day';
  60. $this->aTaskList_constructive[] = 'beforeRemoveIndex__data_summary_ad_hourly__data_summary_ad_hourly_hour';
  61. $this->aTaskList_constructive[] = 'afterRemoveIndex__data_summary_ad_hourly__data_summary_ad_hourly_hour';
  62. $this->aTaskList_constructive[] = 'beforeRemoveIndex__data_summary_ad_hourly__data_summary_ad_hourly_ad_id';
  63. $this->aTaskList_constructive[] = 'afterRemoveIndex__data_summary_ad_hourly__data_summary_ad_hourly_ad_id';
  64. $this->aTaskList_constructive[] = 'beforeRemoveIndex__data_summary_ad_hourly__data_summary_ad_hourly_zone_id';
  65. $this->aTaskList_constructive[] = 'afterRemoveIndex__data_summary_ad_hourly__data_summary_ad_hourly_zone_id';
  66. $this->aTaskList_destructive[] = 'beforeRemoveField__data_intermediate_ad__day';
  67. $this->aTaskList_destructive[] = 'afterRemoveField__data_intermediate_ad__day';
  68. $this->aTaskList_destructive[] = 'beforeRemoveField__data_intermediate_ad__hour';
  69. $this->aTaskList_destructive[] = 'afterRemoveField__data_intermediate_ad__hour';
  70. $this->aTaskList_destructive[] = 'beforeRemoveField__data_summary_ad_hourly__day';
  71. $this->aTaskList_destructive[] = 'afterRemoveField__data_summary_ad_hourly__day';
  72. $this->aTaskList_destructive[] = 'beforeRemoveField__data_summary_ad_hourly__hour';
  73. $this->aTaskList_destructive[] = 'afterRemoveField__data_summary_ad_hourly__hour';
  74. $this->aObjectMap['data_intermediate_ad']['date_time'] = array('fromTable'=>'data_intermediate_ad', 'fromField'=>'date_time');
  75. $this->aObjectMap['data_summary_ad_hourly']['date_time'] = array('fromTable'=>'data_summary_ad_hourly', 'fromField'=>'date_time');
  76. }
  77. function beforeAddField__data_intermediate_ad__date_time()
  78. {
  79. return $this->beforeAddField('data_intermediate_ad', 'date_time');
  80. }
  81. function afterAddField__data_intermediate_ad__date_time()
  82. {
  83. return $this->migrateDayHour('data_intermediate_ad') && $this->afterAddField('data_intermediate_ad', 'date_time');
  84. }
  85. function beforeAddIndex__data_intermediate_ad__ad_id_date_time()
  86. {
  87. return $this->beforeAddIndex('data_intermediate_ad', 'ad_id_date_time');
  88. }
  89. function afterAddIndex__data_intermediate_ad__ad_id_date_time()
  90. {
  91. return $this->afterAddIndex('data_intermediate_ad', 'ad_id_date_time');
  92. }
  93. function beforeAddIndex__data_intermediate_ad__zone_id_date_time()
  94. {
  95. return $this->beforeAddIndex('data_intermediate_ad', 'zone_id_date_time');
  96. }
  97. function afterAddIndex__data_intermediate_ad__zone_id_date_time()
  98. {
  99. return $this->afterAddIndex('data_intermediate_ad', 'zone_id_date_time');
  100. }
  101. function beforeAddIndex__data_intermediate_ad__date_time()
  102. {
  103. return $this->beforeAddIndex('data_intermediate_ad', 'date_time');
  104. }
  105. function afterAddIndex__data_intermediate_ad__date_time()
  106. {
  107. return $this->afterAddIndex('data_intermediate_ad', 'date_time');
  108. }
  109. function beforeAddIndex__data_intermediate_ad__interval_start()
  110. {
  111. return $this->beforeAddIndex('data_intermediate_ad', 'interval_start');
  112. }
  113. function afterAddIndex__data_intermediate_ad__interval_start()
  114. {
  115. return $this->afterAddIndex('data_intermediate_ad', 'interval_start');
  116. }
  117. function beforeRemoveIndex__data_intermediate_ad__data_intermediate_ad_day()
  118. {
  119. return $this->beforeRemoveIndex('data_intermediate_ad', 'data_intermediate_ad_day');
  120. }
  121. function afterRemoveIndex__data_intermediate_ad__data_intermediate_ad_day()
  122. {
  123. return $this->afterRemoveIndex('data_intermediate_ad', 'data_intermediate_ad_day');
  124. }
  125. function beforeRemoveIndex__data_intermediate_ad__data_intermediate_ad_operation_interval_id()
  126. {
  127. return $this->beforeRemoveIndex('data_intermediate_ad', 'data_intermediate_ad_operation_interval_id');
  128. }
  129. function afterRemoveIndex__data_intermediate_ad__data_intermediate_ad_operation_interval_id()
  130. {
  131. return $this->afterRemoveIndex('data_intermediate_ad', 'data_intermediate_ad_operation_interval_id');
  132. }
  133. function beforeRemoveIndex__data_intermediate_ad__data_intermediate_ad_ad_id()
  134. {
  135. return $this->beforeRemoveIndex('data_intermediate_ad', 'data_intermediate_ad_ad_id');
  136. }
  137. function afterRemoveIndex__data_intermediate_ad__data_intermediate_ad_ad_id()
  138. {
  139. return $this->afterRemoveIndex('data_intermediate_ad', 'data_intermediate_ad_ad_id');
  140. }
  141. function beforeRemoveIndex__data_intermediate_ad__data_intermediate_ad_zone_id()
  142. {
  143. return $this->beforeRemoveIndex('data_intermediate_ad', 'data_intermediate_ad_zone_id');
  144. }
  145. function afterRemoveIndex__data_intermediate_ad__data_intermediate_ad_zone_id()
  146. {
  147. return $this->afterRemoveIndex('data_intermediate_ad', 'data_intermediate_ad_zone_id');
  148. }
  149. function beforeAddField__data_summary_ad_hourly__date_time()
  150. {
  151. return $this->beforeAddField('data_summary_ad_hourly', 'date_time');
  152. }
  153. function afterAddField__data_summary_ad_hourly__date_time()
  154. {
  155. return $this->migrateDayHour('data_summary_ad_hourly') && $this->afterAddField('data_summary_ad_hourly', 'date_time');
  156. }
  157. function beforeAddIndex__data_summary_ad_hourly__date_time()
  158. {
  159. return $this->beforeAddIndex('data_summary_ad_hourly', 'date_time');
  160. }
  161. function afterAddIndex__data_summary_ad_hourly__date_time()
  162. {
  163. return $this->afterAddIndex('data_summary_ad_hourly', 'date_time');
  164. }
  165. function beforeAddIndex__data_summary_ad_hourly__ad_id_date_time()
  166. {
  167. return $this->beforeAddIndex('data_summary_ad_hourly', 'ad_id_date_time');
  168. }
  169. function afterAddIndex__data_summary_ad_hourly__ad_id_date_time()
  170. {
  171. return $this->afterAddIndex('data_summary_ad_hourly', 'ad_id_date_time');
  172. }
  173. function beforeAddIndex__data_summary_ad_hourly__zone_id_date_time()
  174. {
  175. return $this->beforeAddIndex('data_summary_ad_hourly', 'zone_id_date_time');
  176. }
  177. function afterAddIndex__data_summary_ad_hourly__zone_id_date_time()
  178. {
  179. return $this->afterAddIndex('data_summary_ad_hourly', 'zone_id_date_time');
  180. }
  181. function beforeRemoveIndex__data_summary_ad_hourly__data_summary_ad_hourly_day()
  182. {
  183. return $this->beforeRemoveIndex('data_summary_ad_hourly', 'data_summary_ad_hourly_day');
  184. }
  185. function afterRemoveIndex__data_summary_ad_hourly__data_summary_ad_hourly_day()
  186. {
  187. return $this->afterRemoveIndex('data_summary_ad_hourly', 'data_summary_ad_hourly_day');
  188. }
  189. function beforeRemoveIndex__data_summary_ad_hourly__data_summary_ad_hourly_hour()
  190. {
  191. return $this->beforeRemoveIndex('data_summary_ad_hourly', 'data_summary_ad_hourly_hour');
  192. }
  193. function afterRemoveIndex__data_summary_ad_hourly__data_summary_ad_hourly_hour()
  194. {
  195. return $this->afterRemoveIndex('data_summary_ad_hourly', 'data_summary_ad_hourly_hour');
  196. }
  197. function beforeRemoveIndex__data_summary_ad_hourly__data_summary_ad_hourly_ad_id()
  198. {
  199. return $this->beforeRemoveIndex('data_summary_ad_hourly', 'data_summary_ad_hourly_ad_id');
  200. }
  201. function afterRemoveIndex__data_summary_ad_hourly__data_summary_ad_hourly_ad_id()
  202. {
  203. return $this->afterRemoveIndex('data_summary_ad_hourly', 'data_summary_ad_hourly_ad_id');
  204. }
  205. function beforeRemoveIndex__data_summary_ad_hourly__data_summary_ad_hourly_zone_id()
  206. {
  207. return $this->beforeRemoveIndex('data_summary_ad_hourly', 'data_summary_ad_hourly_zone_id');
  208. }
  209. function afterRemoveIndex__data_summary_ad_hourly__data_summary_ad_hourly_zone_id()
  210. {
  211. return $this->afterRemoveIndex('data_summary_ad_hourly', 'data_summary_ad_hourly_zone_id');
  212. }
  213. function beforeRemoveField__data_intermediate_ad__day()
  214. {
  215. return $this->beforeRemoveField('data_intermediate_ad', 'day');
  216. }
  217. function afterRemoveField__data_intermediate_ad__day()
  218. {
  219. return $this->afterRemoveField('data_intermediate_ad', 'day');
  220. }
  221. function beforeRemoveField__data_intermediate_ad__hour()
  222. {
  223. return $this->beforeRemoveField('data_intermediate_ad', 'hour');
  224. }
  225. function afterRemoveField__data_intermediate_ad__hour()
  226. {
  227. return $this->afterRemoveField('data_intermediate_ad', 'hour');
  228. }
  229. function beforeRemoveField__data_summary_ad_hourly__day()
  230. {
  231. return $this->beforeRemoveField('data_summary_ad_hourly', 'day');
  232. }
  233. function afterRemoveField__data_summary_ad_hourly__day()
  234. {
  235. return $this->afterRemoveField('data_summary_ad_hourly', 'day');
  236. }
  237. function beforeRemoveField__data_summary_ad_hourly__hour()
  238. {
  239. return $this->beforeRemoveField('data_summary_ad_hourly', 'hour');
  240. }
  241. function afterRemoveField__data_summary_ad_hourly__hour()
  242. {
  243. return $this->afterRemoveField('data_summary_ad_hourly', 'hour');
  244. }
  245. function migrateDayHour($table)
  246. {
  247. $prefix = $GLOBALS['_MAX']['CONF']['table']['prefix'];
  248. $tableName = $this->oDBH->quoteIdentifier($prefix.$table, true);
  249. if ($this->oDBH->dbsyntax == 'pgsql') {
  250. $query = "UPDATE {$tableName} SET date_time = {$tableName}.day::timestamp + ({$tableName}.hour || ' hours')::interval";
  251. } else {
  252. $query = "UPDATE {$tableName} SET date_time = DATE_ADD({$tableName}.day, interval {$tableName}.hour hour)";
  253. }
  254. $result = $this->oDBH->exec($query);
  255. if (PEAR::isError($result)) {
  256. return $this->_logErrorAndReturnFalse('Cannot migrate '.$table);
  257. }
  258. return true;
  259. }
  260. }
  261. ?>