@@ -11,7 +11,11 @@ import (
1111)
1212
1313func openDB(dbPath string) (*sql.DB, error) {
14− db, err := driver.Open(dbPath, func(c *sqlite3.Conn) error {
14+ // Use BEGIN IMMEDIATE so writers acquire the reserved lock up front,
15+ // preventing deferred-to-writer upgrade deadlocks. The "file:" prefix
16+ // is required for the ncruces driver to parse query parameters.
17+ dsn := fmt.Sprintf("file:%s?_txlock=immediate", dbPath)
18+ db, err := driver.Open(dsn, func(c *sqlite3.Conn) error {
1519 // Set pragmas for better performance via _pragma query params.
1620 // Format: PRAGMA name = value;
1721 for name, value := range pragmas {