Commit 2afef090d20df9385fe04b6750cfd448df91acb4

Authored by nbm
1 parent e9b82f84

Check whether the upgrade table exists before checking if an upgrade has

been installed.

Run SQL queries using the admin db connection set up in upgrades.inc.php


git-svn-id: https://kt-dms.svn.sourceforge.net/svnroot/kt-dms/trunk@3378 c91229c3-7414-0410-bfa2-8a42b809f60b
lib/upgrades/UpgradeItems.inc.php
... ... @@ -72,7 +72,19 @@ class UpgradeItem {
72 72 return $this->type;
73 73 }
74 74  
  75 + function _upgradeTableInstalled() {
  76 + $query = "SELECT COUNT(id) FROM upgrades";
  77 + $res = DBUtil::getOneResult($query);
  78 + if (PEAR::isError($res)) {
  79 + return false;
  80 + }
  81 + return true;
  82 + }
  83 +
75 84 function isAlreadyApplied() {
  85 + if (!$this->_upgradeTableInstalled()) {
  86 + return false;
  87 + }
76 88 $query = "SELECT id FROM upgrades WHERE descriptor = ? AND result = ?";
77 89 $params = array($this->getDescriptor(), true);
78 90 $res = DBUtil::getOneResultKey(array($query, $params), 'id');
... ... @@ -87,12 +99,15 @@ class UpgradeItem {
87 99  
88 100 function performUpgrade($force = false) {
89 101 $res = $this->isAlreadyApplied();
90   - if ($res === true || PEAR::isError($res)) {
  102 + if ($res === true) {
91 103 if ($force !== true) {
92 104 // PHP5: Exception
93 105 return new Upgrade_Already_Applied($this);
94 106 }
95 107 }
  108 + if (PEAR::isError($res)) {
  109 + return $res;
  110 + }
96 111 $res = $this->_performUpgrade();
97 112 if (PEAR::isError($res)) {
98 113 $this->_recordUpgrade(false);
... ... @@ -259,8 +274,7 @@ class SQLUpgradeItem extends UpgradeItem {
259 274 global $default;
260 275 $sqlupgradedir = KT_DIR . '/sql/' . $default->dbType . '/upgrade/';
261 276 $queries = SQLFile::sqlFromFile($sqlupgradedir . $this->name);
262   - var_dump($queries);
263   - //return DBUtil::runQueries($queries);
  277 + return DBUtil::runQueries($queries, $default->_admindb);
264 278 }
265 279 }
266 280  
... ...