set sqlite3 options for full durability

This commit is contained in:
Scott Lamb
2019-07-10 01:09:52 -07:00
parent 1c904b925a
commit f80c99a43f
2 changed files with 8 additions and 0 deletions

View File

@@ -97,6 +97,10 @@ pub fn run(args: &Args, conn: &mut rusqlite::Connection) -> Result<(), Error> {
// be careful about the order of operations during the upgrade.
conn.execute("pragma foreign_keys = on", &[] as &[&ToSql])?;
// Make the database actually durable.
conn.execute("pragma fullfsync = on", &[] as &[&ToSql])?;
conn.execute("pragma synchronous = 2", &[] as &[&ToSql])?;
// WAL is the preferred journal mode for normal operation; it reduces the number of syncs
// without compromising safety.
set_journal_mode(&conn, "wal").unwrap();