aboutsummaryrefslogtreecommitdiff
path: root/qlite
diff options
context:
space:
mode:
authorMarvin W <git@larma.de>2019-12-15 19:03:02 +0100
committerMarvin W <git@larma.de>2019-12-17 23:52:29 +0100
commita4a795af333d6bcf378e11df456a858af2fa4603 (patch)
tree4f0014f8b9b7876ffd35960beffe4d59fe41f53a /qlite
parent97647f9b5251dfc7a5a84d7432a1914fa7ec66b9 (diff)
downloaddino-a4a795af333d6bcf378e11df456a858af2fa4603.tar.gz
dino-a4a795af333d6bcf378e11df456a858af2fa4603.zip
Use transaction for database migration
Diffstat (limited to 'qlite')
-rw-r--r--qlite/src/database.vala10
-rw-r--r--qlite/src/table.vala4
2 files changed, 12 insertions, 2 deletions
diff --git a/qlite/src/database.vala b/qlite/src/database.vala
index d13b9bc4..f58b76b6 100644
--- a/qlite/src/database.vala
+++ b/qlite/src/database.vala
@@ -38,6 +38,11 @@ public class Database {
}
private void start_migration() {
+ try {
+ exec("BEGIN TRANSACTION");
+ } catch (Error e) {
+ error("SQLite error: %d - %s", db.errcode(), db.errmsg());
+ }
meta_table.create_table_at_version(expected_version);
long old_version = 0;
old_version = meta_table.row_with(meta_name, "version")[meta_int_val, -1];
@@ -66,6 +71,11 @@ public class Database {
foreach (Table t in tables) {
t.post();
}
+ try {
+ exec("END TRANSACTION");
+ } catch (Error e) {
+ error("SQLite error: %d - %s", db.errcode(), db.errmsg());
+ }
}
internal int errcode() {
diff --git a/qlite/src/table.vala b/qlite/src/table.vala
index 6c6ef9de..a5a57c49 100644
--- a/qlite/src/table.vala
+++ b/qlite/src/table.vala
@@ -48,7 +48,7 @@ public class Table {
try {
db.exec(@"INSERT INTO _fts_$name(_fts_$name) VALUES('rebuild');");
} catch (Error e) {
- error(@"Qlite Error: Rebuilding FTS index: $(e.message)");
+ critical(@"Qlite Error: Rebuilding FTS index: $(e.message)");
}
}
@@ -171,7 +171,7 @@ public class Table {
try {
db.exec(@"ALTER TABLE $name ADD COLUMN $(c.to_column_definition())");
} catch (Error e) {
- error(@"Qlite Error: Add columns for version: $(e.message)");
+ critical(@"Qlite Error: Add columns for version: $(e.message)");
}
}
}