diff --git a/server/functions.php b/server/functions.php index e205fb4..4202fa8 100755 --- a/server/functions.php +++ b/server/functions.php @@ -28,7 +28,7 @@ */ $MAX_ENTRY_LEN = 512; $USERS_PATH = "./users/"; -$TARGET_DB_VERSION = 1; +$TARGET_DB_VERSION = 2; function sanitize($val) { @@ -106,15 +106,35 @@ function _migrate_0($user, $db) return 0; } +function _migrate_1($user, $db) +{ + try { + $db->query("CREATE TABLE conf(db_version INTEGER, last_access_time INTEGER)"); + $db->query("INSERT INTO conf VALUES(2, 0)"); + } + catch(Exception $e) + { + $db->close(); + echo "
Unable to load database for user $user ! : $e
"; + return -1; + } + + return 0; +} + function migrate_database($user, $db) { global $TARGET_DB_VERSION; - $migration_functions = ['_migrate_0']; + $migration_functions = ['_migrate_0', '_migrate_1']; - $version = $db->querySingle("SELECT version FROM db_version"); - if ($version == false) - $version = 0; + $version = $db->querySingle("SELECT db_version FROM conf"); + if ($version == false || $version == -1) + { + $version = $db->querySingle("SELECT version FROM db_version"); + if ($version == false || $version == -1) + $version = 0; + } for($i=$version; $i<$TARGET_DB_VERSION; $i++) { diff --git a/server/init.sql b/server/init.sql index 1163973..78e6b3c 100755 --- a/server/init.sql +++ b/server/init.sql @@ -1,3 +1,3 @@ CREATE TABLE gpass(login VARCHAR(512) PRIMARY KEY, password VARCHAR(512), shadow_login VARCHAR(32), salt VARCHAR(32), access_token VARCHAR(32)); -CREATE TABLE db_version(version INTEGER); -INSERT INTO db_version VALUES (1); \ No newline at end of file +CREATE TABLE conf(db_version INTEGER, last_access_time INTEGER); +INSERT INTO conf VALUES (2, 0);