mirror of
https://git.code.sf.net/p/seeddms/code
synced 2025-05-11 12:11:19 +00:00
fix update of postgres database
This commit is contained in:
parent
cd4743d917
commit
92bee67638
|
@ -406,86 +406,97 @@ echo '<p><a href="install.php">' . getMLText("settings_start_install") . '</a></
|
|||
$this->contentHeading("SeedDMS Installation for version ".$_GET['version']);
|
||||
$this->contentContainerStart();
|
||||
|
||||
$sqlfile = "update.sql";
|
||||
switch($settings->_dbDriver) {
|
||||
case 'mysql':
|
||||
case 'mysqli':
|
||||
case 'mysqlnd':
|
||||
$tmp = explode(":", $settings->_dbHostname);
|
||||
$dsn = $settings->_dbDriver.":dbname=".$settings->_dbDatabase.";host=".$tmp[0];
|
||||
if(isset($tmp[1]))
|
||||
$dsn .= ";port=".$tmp[1];
|
||||
break;
|
||||
case 'sqlite':
|
||||
$dsn = $settings->_dbDriver.":".$settings->_dbDatabase;
|
||||
if(file_exists('update-'.$_GET['version'].'/update-sqlite3.sql'))
|
||||
$sqlfile = "update-sqlite3.sql";
|
||||
break;
|
||||
case 'pgsql':
|
||||
$tmp = explode(":", $settings->_dbHostname);
|
||||
$dsn = $settings->_dbDriver.":dbname=".$settings->_dbDatabase.";host=".$tmp[0];
|
||||
if(isset($tmp[1]))
|
||||
$dsn .= ";port=".$tmp[1];
|
||||
if(file_exists('update-'.$_GET['version'].'/update-postgres.sql'))
|
||||
$sqlfile = "update-postgres.sql";
|
||||
}
|
||||
$db = new PDO($dsn, $settings->_dbUser, $settings->_dbPass);
|
||||
if (!$db) {
|
||||
die;
|
||||
}
|
||||
$sqlfile = "update.sql";
|
||||
switch($settings->_dbDriver) {
|
||||
case 'mysql':
|
||||
case 'mysqli':
|
||||
case 'mysqlnd':
|
||||
$tmp = explode(":", $settings->_dbHostname);
|
||||
$dsn = $settings->_dbDriver.":dbname=".$settings->_dbDatabase.";host=".$tmp[0];
|
||||
if(isset($tmp[1]))
|
||||
$dsn .= ";port=".$tmp[1];
|
||||
break;
|
||||
case 'sqlite':
|
||||
$dsn = $settings->_dbDriver.":".$settings->_dbDatabase;
|
||||
if(file_exists('update-'.$_GET['version'].'/update-sqlite3.sql'))
|
||||
$sqlfile = "update-sqlite3.sql";
|
||||
break;
|
||||
case 'pgsql':
|
||||
$tmp = explode(":", $settings->_dbHostname);
|
||||
$dsn = $settings->_dbDriver.":dbname=".$settings->_dbDatabase.";host=".$tmp[0];
|
||||
if(isset($tmp[1]))
|
||||
$dsn .= ";port=".$tmp[1];
|
||||
if(file_exists('update-'.$_GET['version'].'/update-postgres.sql'))
|
||||
$sqlfile = "update-postgres.sql";
|
||||
}
|
||||
$db = new PDO($dsn, $settings->_dbUser, $settings->_dbPass);
|
||||
if (!$db) {
|
||||
die;
|
||||
}
|
||||
|
||||
$errorMsg = '';
|
||||
$res = $db->query('select * from tblVersion');
|
||||
$recs = $res->fetchAll(PDO::FETCH_ASSOC);
|
||||
if(!empty($recs)) {
|
||||
$rec = $recs[0];
|
||||
if($_GET['version'] > $rec['major'].'.'.$rec['minor'].'.'.$rec['subminor']) {
|
||||
$errorMsg = '';
|
||||
switch($settings->_dbDriver) {
|
||||
case 'mysql':
|
||||
case 'mysqli':
|
||||
case 'mysqlnd':
|
||||
case 'sqlite':
|
||||
$sql = 'select * from `tblVersion`';
|
||||
break;
|
||||
case 'pgsql':
|
||||
$sql = 'select * from "tblVersion"';
|
||||
break;
|
||||
}
|
||||
$res = $db->query($sql);
|
||||
$recs = $res->fetchAll(PDO::FETCH_ASSOC);
|
||||
if(!empty($recs)) {
|
||||
$rec = $recs[0];
|
||||
if($_GET['version'] > $rec['major'].'.'.$rec['minor'].'.'.$rec['subminor']) {
|
||||
|
||||
if(file_exists('update-'.$_GET['version'].'/'.$sqlfile)) {
|
||||
$queries = file_get_contents('update-'.$_GET['version'].'/'.$sqlfile);
|
||||
$queries = explode(";", $queries);
|
||||
if(file_exists('update-'.$_GET['version'].'/'.$sqlfile)) {
|
||||
$queries = file_get_contents('update-'.$_GET['version'].'/'.$sqlfile);
|
||||
$queries = explode(";", $queries);
|
||||
|
||||
// execute queries
|
||||
if($queries) {
|
||||
echo "<h3>Updating database schema</h3>";
|
||||
foreach($queries as $query) {
|
||||
$query = trim($query);
|
||||
if (!empty($query)) {
|
||||
echo $query."<br />";
|
||||
if(false === $db->exec($query)) {
|
||||
$e = $db->ErrorInfo();
|
||||
$errorMsg .= $e[2] . "<br/>";
|
||||
// execute queries
|
||||
if($queries) {
|
||||
echo "<h3>Updating database schema</h3>";
|
||||
foreach($queries as $query) {
|
||||
$query = trim($query);
|
||||
if (!empty($query)) {
|
||||
echo $query."<br />";
|
||||
if(false === $db->exec($query)) {
|
||||
$e = $db->ErrorInfo();
|
||||
$errorMsg .= $e[2] . "<br/>";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
echo "<p>SQL file for update missing!</p>";
|
||||
}
|
||||
} else {
|
||||
echo "<p>Database schema already up to date.</p>";
|
||||
}
|
||||
|
||||
|
||||
if(!$errorMsg) {
|
||||
if(file_exists('update-'.$_GET['version'].'/update.php')) {
|
||||
echo "<h3>Running update script</h3>";
|
||||
include('update-'.$_GET['version'].'/update.php');
|
||||
}
|
||||
} else {
|
||||
echo "<h3>Error Messages</h3>";
|
||||
echo $errorMsg;
|
||||
}
|
||||
echo "<p><a href=\"install.php\">Go back to installation and recheck.</a></p>";
|
||||
} else {
|
||||
echo "<p>SQL file for update missing!</p>";
|
||||
echo "<p>Could not determine database schema version.</p>";
|
||||
}
|
||||
} else {
|
||||
echo "<p>Database schema already up to date.</p>";
|
||||
}
|
||||
$db = null;
|
||||
|
||||
|
||||
if(!$errorMsg) {
|
||||
if(file_exists('update-'.$_GET['version'].'/update.php')) {
|
||||
echo "<h3>Running update script</h3>";
|
||||
include('update-'.$_GET['version'].'/update.php');
|
||||
}
|
||||
} else {
|
||||
echo "<h3>Error Messages</h3>";
|
||||
echo $errorMsg;
|
||||
}
|
||||
echo "<p><a href=\"install.php\">Go back to installation and recheck.</a></p>";
|
||||
} else {
|
||||
echo "<p>Could not determine database schema version.</p>";
|
||||
}
|
||||
$db = null;
|
||||
|
||||
// just remove info for web page installation
|
||||
$settings->_printDisclaimer = false;
|
||||
$settings->_footNote = false;
|
||||
// end of the page
|
||||
// just remove info for web page installation
|
||||
$settings->_printDisclaimer = false;
|
||||
$settings->_footNote = false;
|
||||
// end of the page
|
||||
$this->contentContainerEnd();
|
||||
$this->contentEnd();
|
||||
$this->htmlEndPage();
|
||||
|
|
Loading…
Reference in New Issue
Block a user