Commit 75d4dac812185f205cd459fb7b1eddb3776e1271
1 parent
d0c372c0
during db migration the database schema version is now get from database itself
Showing
2 changed files
with
41 additions
and
25 deletions
Show diff stats
database/migration_sqlite3.anubis
| ... | ... | @@ -213,13 +213,13 @@ define Maybe(One) |
| 213 | 213 | SQLite3DataBase db, |
| 214 | 214 | (LogLevel, String) -> One logger, |
| 215 | 215 | Migration _migration, |
| 216 | - (DB_Version) -> One update_db_version | |
| 216 | + (SQLite3DataBase , DB_Version) -> One update_db_version | |
| 217 | 217 | )= |
| 218 | 218 | since _migration is migration(mig_version, _, create_tables, create_indexes), |
| 219 | 219 | |
| 220 | 220 | if create_tables(db, logger) is success(_) then |
| 221 | 221 | if create_indexes(db, logger) is success(_) then |
| 222 | - update_db_version(mig_version); | |
| 222 | + update_db_version(db, mig_version); | |
| 223 | 223 | success(unique) |
| 224 | 224 | else |
| 225 | 225 | failure |
| ... | ... | @@ -235,7 +235,7 @@ define Maybe(One) |
| 235 | 235 | // String current_version, //current version of app |
| 236 | 236 | DB_Version db_ver, //version found in db settings |
| 237 | 237 | List(Migration) migrations, |
| 238 | - (DB_Version) -> One update_db_version, | |
| 238 | + (SQLite3DataBase , DB_Version) -> One update_db_version | |
| 239 | 239 | ) = |
| 240 | 240 | if migrations is |
| 241 | 241 | { |
| ... | ... | @@ -250,7 +250,7 @@ define Maybe(One) |
| 250 | 250 | if migrate_to(db, logger) is failure then |
| 251 | 251 | failure |
| 252 | 252 | else |
| 253 | - update_db_version(migration_version); | |
| 253 | + update_db_version(db, migration_version); | |
| 254 | 254 | do_migration_loop(db, logger, migration_version, t, update_db_version) |
| 255 | 255 | |
| 256 | 256 | more then |
| ... | ... | @@ -266,7 +266,7 @@ define Maybe(One) |
| 266 | 266 | if migrate_to(db, logger) is failure then |
| 267 | 267 | failure |
| 268 | 268 | else |
| 269 | - update_db_version(migration_version); | |
| 269 | + update_db_version(db, migration_version); | |
| 270 | 270 | do_migration_loop(db, logger, migration_version, t, update_db_version) |
| 271 | 271 | } |
| 272 | 272 | }. |
| ... | ... | @@ -277,7 +277,7 @@ public define Maybe(One) |
| 277 | 277 | SQLite3DataBase db, |
| 278 | 278 | (LogLevel, String) -> One logger, |
| 279 | 279 | DB_Version current_db_version, |
| 280 | - (DB_Version) -> One update_db_version, | |
| 280 | + (SQLite3DataBase , DB_Version) -> One update_db_version, | |
| 281 | 281 | List(Migration) all_migrations, |
| 282 | 282 | )= |
| 283 | 283 | if is_empty_database(db) then // new empty database | ... | ... |
database/settings_sqlite3.anubis
| ... | ... | @@ -17,9 +17,9 @@ public define Maybe(String) |
| 17 | 17 | select_settings |
| 18 | 18 | ( |
| 19 | 19 | SQLite3DataBase db, |
| 20 | - String var, | |
| 20 | + String name, | |
| 21 | 21 | )= |
| 22 | - if sql_query_timeout(db, "SELECT var_value FROM settings WHERE var_name=" + db_make_sql_string(var) + ";", [], "select_settings") is | |
| 22 | + if sql_query_timeout(db, "SELECT value FROM settings WHERE name = :name;", [bind_String(":name",name)], "select_settings") is | |
| 23 | 23 | { |
| 24 | 24 | error(_) then failure, //error in the SQL request |
| 25 | 25 | ok(_, cursor, _) then |
| ... | ... | @@ -90,29 +90,29 @@ public define One |
| 90 | 90 | update_settings |
| 91 | 91 | ( |
| 92 | 92 | SQLite3DataBase db, |
| 93 | - String var, | |
| 93 | + String name, | |
| 94 | 94 | Bool value |
| 95 | 95 | )= |
| 96 | - with bool_str = if value is true then "true" else "false", | |
| 97 | - with binds = (List(SQLite3Bind))[bind_String(":name", var), bind_String(":value", bool_str)], | |
| 98 | - if select_settings(db, var) is success(_) then | |
| 99 | - forget(sql_query_timeout(db, "UPDATE settings SET var_value = :value WHERE var_name = :name;", binds, "update_settings")) | |
| 96 | + //with bool_str = if value is true then "true" else "false", | |
| 97 | + with binds = (List(SQLite3Bind))[bind_String(":name", name), bind_Bool(":value", value)], | |
| 98 | + if select_settings(db, name) is success(_) then | |
| 99 | + forget(sql_query_timeout(db, "UPDATE settings SET value = :value WHERE name = :name;", binds, "update_settings")) | |
| 100 | 100 | else |
| 101 | - forget(sql_query_timeout(db, "INSERT INTO settings (var_name, var_value) VALUES (:name, :value)", binds, "update_settings")) | |
| 101 | + forget(sql_query_timeout(db, "INSERT INTO settings (name, value) VALUES (:name, :value)", binds, "update_settings")) | |
| 102 | 102 | . |
| 103 | 103 | |
| 104 | 104 | public define One |
| 105 | 105 | update_settings |
| 106 | 106 | ( |
| 107 | 107 | SQLite3DataBase db, |
| 108 | - String var, | |
| 108 | + String name, | |
| 109 | 109 | Int value |
| 110 | 110 | )= |
| 111 | - with binds = (List(SQLite3Bind))[bind_String(":name", var), bind_Int(":value", value)], | |
| 112 | - if select_settings(db, var) is success(_) then | |
| 113 | - forget(sql_query_timeout(db, "UPDATE settings SET var_value = :value WHERE var_name = :name;", binds, "update_settings")) | |
| 111 | + with binds = (List(SQLite3Bind))[bind_String(":name", name), bind_Int(":value", value)], | |
| 112 | + if select_settings(db, name) is success(_) then | |
| 113 | + forget(sql_query_timeout(db, "UPDATE settings SET value = :value WHERE name = :name;", binds, "update_settings")) | |
| 114 | 114 | else |
| 115 | - forget(sql_query_timeout(db, "INSERT INTO settings (var_name, var_value) VALUES (:name, :value)", binds, "update_settings")) | |
| 115 | + forget(sql_query_timeout(db, "INSERT INTO settings (name, value) VALUES (:name, :value)", binds, "update_settings")) | |
| 116 | 116 | . |
| 117 | 117 | |
| 118 | 118 | |
| ... | ... | @@ -120,13 +120,29 @@ public define One |
| 120 | 120 | update_settings |
| 121 | 121 | ( |
| 122 | 122 | SQLite3DataBase db, |
| 123 | - String var, | |
| 123 | + String name, | |
| 124 | 124 | String value |
| 125 | 125 | )= |
| 126 | - with binds = (List(SQLite3Bind))[bind_String(":name", var), bind_String(":value", value)], | |
| 127 | - if select_settings(db, var) is success(_) then | |
| 128 | - forget(sql_query_timeout(db, "UPDATE settings SET var_value = :value WHERE var_name = :name;", binds, "update_settings")) | |
| 126 | + with binds = (List(SQLite3Bind))[bind_String(":name", name), bind_String(":value", value)], | |
| 127 | + if select_settings(db, name) is success(_) then | |
| 128 | + forget(sql_query_timeout(db, "UPDATE settings SET value = :value WHERE name = :name;", binds, "update_settings")) | |
| 129 | 129 | else |
| 130 | - forget(sql_query_timeout(db, "INSERT INTO settings (var_name, var_value) VALUES (:name, :value)", binds, "update_settings")) | |
| 130 | + forget(sql_query_timeout(db, "INSERT INTO settings (name, value) VALUES (:name, :value)", binds, "update_settings")) | |
| 131 | 131 | . |
| 132 | - | |
| 132 | + | |
| 133 | + | |
| 134 | +public define Bool | |
| 135 | + create_settings_table | |
| 136 | + ( | |
| 137 | + SQLite3DataBase db | |
| 138 | + )= | |
| 139 | + if sql_query_timeout(db, "CREATE TABLE IF NOT EXISTS settings ( | |
| 140 | + id INTEGER PRIMARY KEY, | |
| 141 | + name TEXT UNIQUE, | |
| 142 | + value TEXT | |
| 143 | + );", [], "create_settings_table") is | |
| 144 | + { | |
| 145 | + error(_) then false, //error in the SQL request | |
| 146 | + ok(_, _, _) then true | |
| 147 | + } | |
| 148 | +. | ... | ... |