support for sqlite3 database update

This commit is contained in:
Uwe Steinmann 2013-04-22 10:15:35 +02:00
parent 9a6b4ffc34
commit d4e6eb6784
3 changed files with 32 additions and 12 deletions

View File

@ -0,0 +1,5 @@
BEGIN;
UPDATE tblVersion set major=4, minor=1, subminor=0;
COMMIT;

View File

@ -0,0 +1,8 @@
BEGIN;
ALTER TABLE tblSessions ADD COLUMN `su` INTEGER DEFAULT NULL;
UPDATE tblVersion set major=4, minor=2, subminor=0;
COMMIT;

View File

@ -41,6 +41,7 @@ UI::htmlStartPage('Database update');
UI::contentHeading("SeedDMS Installation for version ".$_GET['version']); UI::contentHeading("SeedDMS Installation for version ".$_GET['version']);
UI::contentContainerStart(); UI::contentContainerStart();
$sqlfile = "update.sql";
switch($settings->_dbDriver) { switch($settings->_dbDriver) {
case 'mysql': case 'mysql':
case 'mysqli': case 'mysqli':
@ -49,6 +50,8 @@ switch($settings->_dbDriver) {
break; break;
case 'sqlite': case 'sqlite':
$dsn = $settings->_dbDriver.":".$settings->_dbDatabase; $dsn = $settings->_dbDriver.":".$settings->_dbDatabase;
if(file_exists('update-'.$_GET['version'].'/update-sqlite3.sql'))
$sqlfile = "update-sqlite3.sql";
break; break;
} }
$db = new PDO($dsn, $settings->_dbUser, $settings->_dbPass); $db = new PDO($dsn, $settings->_dbUser, $settings->_dbPass);
@ -61,7 +64,8 @@ $res = $db->query('select * from tblVersion');
if($rec = $res->fetch(PDO::FETCH_ASSOC)) { if($rec = $res->fetch(PDO::FETCH_ASSOC)) {
if($_GET['version'] > $rec['major'].'.'.$rec['minor'].'.'.$rec['subminor']) { if($_GET['version'] > $rec['major'].'.'.$rec['minor'].'.'.$rec['subminor']) {
$queries = file_get_contents('update-'.$_GET['version'].'/update.sql'); if(file_exists('update-'.$_GET['version'].'/'.$sqlfile)) {
$queries = file_get_contents('update-'.$_GET['version'].'/'.$sqlfile);
$queries = explode(";", $queries); $queries = explode(";", $queries);
// execute queries // execute queries
@ -78,6 +82,9 @@ if($rec = $res->fetch(PDO::FETCH_ASSOC)) {
} }
} }
} }
} else {
echo "<p>SQL file for update missing!</p>";
}
} else { } else {
echo "<p>Database schema already up to date.</p>"; echo "<p>Database schema already up to date.</p>";
} }