1
0
Fork 0

Add default connection-scoped pragmas for SQLite

`PRAGMA busy_timeout = 5000` tells SQLite to keep trying for up to 5000 ms
when there is lock contention, rather than aborting immediately. This should
hopefully prevent the vast majority of "database is locked" panics observed
since the async transition.

`PRAGMA synchronous = NORMAL` trades better performance for a small potential
loss in durability (the default is `FULL`). The SQLite docs recommend `NORMAL`
as "a good choice for most applications running in WAL mode".
Dieser Commit ist enthalten in:
Jeremy Lin 2022-04-26 17:55:19 -07:00
Ursprung b617ffd2af
Commit 78d07e2fda
2 geänderte Dateien mit 2 neuen und 2 gelöschten Zeilen

Datei anzeigen

@ -34,7 +34,7 @@
## For example, this can be used to run connection-scoped pragma statements.
##
## Statements to run when creating a new SQLite connection
# SQLITE_CONN_INIT=""
# SQLITE_CONN_INIT="PRAGMA busy_timeout = 5000; PRAGMA synchronous = NORMAL;"
## Statements to run when creating a new MySQL connection
# MYSQL_CONN_INIT=""
## Statements to run when creating a new PostgreSQL connection

Datei anzeigen

@ -521,7 +521,7 @@ make_config! {
database_max_conns: u32, false, def, 10;
/// SQLite connection init |> Statements to run when creating a new SQLite connection
sqlite_conn_init: String, false, def, "".to_string();
sqlite_conn_init: String, false, def, "PRAGMA busy_timeout = 5000; PRAGMA synchronous = NORMAL;".to_string();
/// MySQL connection init |> Statements to run when creating a new MySQL connection
mysql_conn_init: String, false, def, "".to_string();