Commit 2afef090d20df9385fe04b6750cfd448df91acb4
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
Showing
1 changed file
with
17 additions
and
3 deletions
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 | ... | ... |