postupgrade.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. <?php
  2. if((strpos($extension, 'effort') !== false and version_compare($this->post->installedVersion, '6.0', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '9.0.3', '<=')))
  3. {
  4. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update9.0.3.sql';
  5. $this->loadModel('upgrade')->execSQL($extensionPath);
  6. }
  7. if((strpos($extension, 'effort') !== false and version_compare($this->post->installedVersion, '5.8', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '8.9.3', '<=')))
  8. {
  9. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update8.9.3.sql';
  10. $this->loadModel('upgrade')->execSQL($extensionPath);
  11. }
  12. if((strpos($extension, 'effort') !== false and version_compare($this->post->installedVersion, '5.3', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '8.6', '<=')))
  13. {
  14. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update8.6.sql';
  15. $this->loadModel('upgrade')->execSQL($extensionPath);
  16. }
  17. if((strpos($extension, 'effort') !== false and version_compare($this->post->installedVersion, '4.8', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '8.3', '<=')))
  18. {
  19. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update8.3.sql';
  20. $this->loadModel('upgrade')->execSQL($extensionPath);
  21. }
  22. if((strpos($extension, 'effort') !== false and version_compare($this->post->installedVersion, '4.7', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '8.2', '<=')))
  23. {
  24. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update8.2.sql';
  25. $this->loadModel('upgrade')->execSQL($extensionPath);
  26. }
  27. if((strpos($extension, 'effort') !== false and version_compare($this->post->installedVersion, '4.1', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '7.0.beta', '<=')))
  28. {
  29. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update7.0.beta.sql';
  30. $this->loadModel('upgrade')->execSQL($extensionPath);
  31. }
  32. if((strpos($extension, 'effort') !== false and version_compare($this->post->installedVersion, '4.0', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '6.6.1', '<=')))
  33. {
  34. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update6.6.1.sql';
  35. $this->loadModel('upgrade')->execSQL($extensionPath);
  36. }
  37. if((strpos($extension, 'effort') !== false and version_compare($this->post->installedVersion, '3.8', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '6.5.1', '<=')))
  38. {
  39. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update6.5.1.sql';
  40. $this->loadModel('upgrade')->execSQL($extensionPath);
  41. }
  42. if((strpos($extension, 'effort') !== false and version_compare($this->post->installedVersion, '3.7', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '6.4', '<=')))
  43. {
  44. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update6.4.sql';
  45. $this->loadModel('upgrade')->execSQL($extensionPath);
  46. }
  47. if((strpos($extension, 'effort') !== false and version_compare($this->post->installedVersion, '2.8', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '5.0.1', '<=')))
  48. {
  49. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update5.0.1.sql';
  50. $this->loadModel('upgrade')->execSQL($extensionPath);
  51. }
  52. if((strpos($extension, 'effort') !== false and version_compare($this->post->installedVersion, '1.3', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '2.0', '<=')))
  53. {
  54. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update1.3.sql';
  55. $this->loadModel('upgrade')->execSQL($extensionPath);
  56. }
  57. if((strpos($extension, 'effort') !== false and version_compare($this->post->installedVersion, '1.2', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '1.1.1', '<=')))
  58. {
  59. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update1.1.sql';
  60. $this->loadModel('upgrade')->execSQL($extensionPath);
  61. }
  62. if((strpos($extension, 'excel') !== false and version_compare($this->post->installedVersion, '5.5', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '8.3', '<=')))
  63. {
  64. $basePath = dirname(dirname(__FILE__)) . '/';
  65. unlink($basePath . 'module/bug/ext/lang/en/execel.php');
  66. unlink($basePath . 'module/bug/ext/lang/zh-cn/execel.php');
  67. unlink($basePath . 'module/bug/ext/lang/zh-tw/execel.php');
  68. unlink($basePath . 'module/story/ext/lang/en/execel.php');
  69. unlink($basePath . 'module/story/ext/lang/zh-cn/execel.php');
  70. unlink($basePath . 'module/story/ext/lang/zh-tw/execel.php');
  71. unlink($basePath . 'module/task/ext/lang/en/execel.php');
  72. unlink($basePath . 'module/task/ext/lang/zh-cn/execel.php');
  73. unlink($basePath . 'module/task/ext/lang/zh-tw/execel.php');
  74. unlink($basePath . 'module/testcase/ext/lang/en/execel.php');
  75. unlink($basePath . 'module/testcase/ext/lang/zh-cn/execel.php');
  76. unlink($basePath . 'module/testcase/ext/lang/zh-tw/execel.php');
  77. }
  78. if((strpos($extension, 'gantt') !== false and version_compare($this->post->installedVersion, '4.0', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '9.0.3', '<=')))
  79. {
  80. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update9.0.3.sql';
  81. $this->loadModel('upgrade')->execSQL($extensionPath);
  82. }
  83. if((strpos($extension, 'gantt') !== false and version_compare($this->post->installedVersion, '2.2', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '5.0.1', '<=')))
  84. {
  85. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update5.0.1.sql';
  86. $this->loadModel('upgrade')->execSQL($extensionPath);
  87. }
  88. if((strpos($extension, 'gantt') !== false and version_compare($this->post->installedVersion, '1.5', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '2.1', '<=')))
  89. {
  90. if(!isset($execedSql['2.1']))
  91. {
  92. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update2.1.sql';
  93. $this->loadModel('upgrade')->execSQL($extensionPath);
  94. $execedSql['2.1'] = true;
  95. }
  96. }
  97. if(version_compare($this->config->version, '3.1', '<='))
  98. {
  99. $sql = "ALTER TABLE `zt_task` CHANGE `estimateStartDate` `estStarted` DATE NOT NULL , CHANGE `actualStartDate` `realStarted` DATE NOT NULL";
  100. $sql = str_replace('zt_', $this->config->db->prefix, $sql);
  101. try
  102. {
  103. $this->dbh->exec($sql);
  104. }
  105. catch (PDOException $e)
  106. {
  107. }
  108. }
  109. if((strpos($extension, 'gantt') !== false and version_compare($this->post->installedVersion, '1.8', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '3.3', '<=')))
  110. {
  111. $results = $this->dbh->query("show Variables like '%table_names'")->fetchAll();
  112. $hasLowered = false;
  113. foreach($results as $result)
  114. {
  115. if(strtolower($result->Variable_name) == 'lower_case_table_names' and $result->Value == 1)
  116. {
  117. $hasLowered = true;
  118. break;
  119. }
  120. }
  121. if(!$hasLowered)
  122. {
  123. $tablesExists = $this->dbh->query('SHOW TABLES')->fetchAll();
  124. foreach($tablesExists as $key => $table) $tablesExists[$key] = current((array)$table);
  125. $tablesExists = array_flip($tablesExists);
  126. $oldTable = $this->config->db->prefix . 'relationOfTasks';
  127. $newTable = $this->config->db->prefix . 'relationoftasks';
  128. if(isset($tablesExists[$oldTable]))
  129. {
  130. $upgradebak = $newTable . '_othertablebak';
  131. if(isset($tablesExists[$upgradebak])) $this->dbh->query("DROP TABLE `$upgradebak`");
  132. if(isset($tablesExists[$newTable])) $this->dbh->query("RENAME TABLE `$newTable` TO `$upgradebak`");
  133. $tempTable = $oldTable . '_zentaotmp';
  134. $this->dbh->query("RENAME TABLE `$oldTable` TO `$tempTable`");
  135. $this->dbh->query("RENAME TABLE `$tempTable` TO `$newTable`");
  136. }
  137. }
  138. }
  139. if((strpos($extension, 'repo') !== false and version_compare($this->post->installedVersion, '5.7', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '8.5.1', '<=')))
  140. {
  141. if(!isset($execedSql['8.5.1']))
  142. {
  143. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update8.5.1.sql';
  144. $this->loadModel('upgrade')->execSQL($extensionPath);
  145. $execedSql['8.5.1'] = true;
  146. }
  147. }
  148. if((strpos($extension, 'repo') !== false and version_compare($this->post->installedVersion, '4.9', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '6.5.1', '<=')))
  149. {
  150. if(!isset($execedSql['6.5.1']))
  151. {
  152. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update6.5.1.sql';
  153. $this->loadModel('upgrade')->execSQL($extensionPath);
  154. $execedSql['6.5.1'] = true;
  155. }
  156. }
  157. if((strpos($extension, 'repo') !== false and version_compare($this->post->installedVersion, '4.1', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '5.0.1', '<=')))
  158. {
  159. if(!isset($execedSql['5.0.1']))
  160. {
  161. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update5.0.1.sql';
  162. $this->loadModel('upgrade')->execSQL($extensionPath);
  163. $execedSql['5.0.1'] = true;
  164. }
  165. }
  166. if((strpos($extension, 'repo') !== false and version_compare($this->post->installedVersion, '2.2', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '2.1', '<=')))
  167. {
  168. if(!isset($execedSql['2.1']))
  169. {
  170. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update2.1.sql';
  171. $this->loadModel('upgrade')->execSQL($extensionPath);
  172. $execedSql['2.1'] = true;
  173. }
  174. }
  175. if((strpos($extension, 'repo') !== false and version_compare($this->post->installedVersion, '3.1', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '3.1', '<=')))
  176. {
  177. if(!isset($execedSql['3.0']))
  178. {
  179. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update3.0.sql';
  180. $this->loadModel('upgrade')->execSQL($extensionPath);
  181. $execedSql['3.0'] = true;
  182. }
  183. }
  184. if((strpos($extension, 'repo') !== false and version_compare($this->post->installedVersion, '3.4', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '4.0', '<=')))
  185. {
  186. if(!isset($execedSql['3.4']))
  187. {
  188. $extensionPath = $this->app->getModulePath('', 'extension') . 'ext' . DS . $extension . DS . 'db' . DS . 'update4.0.sql';
  189. $this->loadModel('upgrade')->execSQL($extensionPath);
  190. $execedSql['3.4'] = true;
  191. }
  192. }
  193. if((strpos($extension, 'repo') !== false and version_compare($this->post->installedVersion, '3.2', '<=')) or (strpos($extension, 'bizext') !== false and version_compare($this->post->installedVersion, '3.3', '<=')))
  194. {
  195. $results = $this->dbh->query("show Variables like '%table_names'")->fetchAll();
  196. $hasLowered = false;
  197. foreach($results as $result)
  198. {
  199. if(strtolower($result->Variable_name) == 'lower_case_table_names' and $result->Value == 1)
  200. {
  201. $hasLowered = true;
  202. break;
  203. }
  204. }
  205. if(!$hasLowered)
  206. {
  207. $tablesExists = $this->dbh->query('SHOW TABLES')->fetchAll();
  208. foreach($tablesExists as $key => $table) $tablesExists[$key] = current((array)$table);
  209. $tablesExists = array_flip($tablesExists);
  210. $oldTable = $this->config->db->prefix . 'repoHistory';
  211. $newTable = $this->config->db->prefix . 'repohistory';
  212. if(isset($tablesExists[$oldTable]))
  213. {
  214. $upgradebak = $newTable . '_othertablebak';
  215. if(isset($tablesExists[$upgradebak])) $this->dbh->query("DROP TABLE `$upgradebak`");
  216. if(isset($tablesExists[$newTable])) $this->dbh->query("RENAME TABLE `$newTable` TO `$upgradebak`");
  217. $tempTable = $oldTable . '_zentaotmp';
  218. $this->dbh->query("RENAME TABLE `$oldTable` TO `$tempTable`");
  219. $this->dbh->query("RENAME TABLE `$tempTable` TO `$newTable`");
  220. }
  221. }
  222. }