first commit
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
import sqlite3
|
||||
|
||||
from .db_path import db_path
|
||||
|
||||
|
||||
def connect(slug):
|
||||
# timeout=10 : si une autre connexion tient un verrou d'écriture au même
|
||||
# instant (deux requêtes qui arrivent presque en même temps, ex. deux
|
||||
# onglets, ou le navigateur qui recharge plusieurs ressources), sqlite3
|
||||
# réessaie pendant 10 secondes au lieu de lever immédiatement "database
|
||||
# is locked". Le mode WAL (Write-Ahead Logging) va plus loin : il permet
|
||||
# à des lectures de se faire PENDANT qu'une écriture est en cours
|
||||
# ailleurs, ce qui est la cause la plus fréquente de ce blocage avec le
|
||||
# serveur de développement Flask.
|
||||
conn = sqlite3.connect(db_path(slug), timeout=10)
|
||||
conn.row_factory = sqlite3.Row
|
||||
conn.execute("PRAGMA foreign_keys = ON")
|
||||
conn.execute("PRAGMA journal_mode = WAL")
|
||||
conn.execute("PRAGMA busy_timeout = 8000")
|
||||
return conn
|
||||
Reference in New Issue
Block a user