This is the proc I am currently using:
proc opendb(readonly: bool = false): DbConn =
20 │ 21 │ var 22 │ appdir: string = getAppDir() 23 │ dbpath: string 24 │ 25
│ proc isOnPath(): bool = 26 │ 27 │ let path = split(getEnv("PATH"),":") 28 │
29 │ appdir in path 30 │ 31 │ if release and isOnPath():# and isOnPath(): 32 │
33 │ dbpath = getDataDir() / "medical.db" 34 │ 35 │ else: 36 │ 37 │ dbpath =
parentDir(appdir) / ".local/share/medical.db" 38 │ 39 │ let db = open(dbpath,
"", "", "") 40 │ 41 │ if readonly: 42 │ 43 │ db.exec(sql"PRAGMA query_only =
true") 44 │ 45 │ else: 46 │ 47 │ db.exec(sql"pragma foreign_keys = on") 48 │ 49
│ result = db
By the time I run the db.exec(pragma) it is already too late.
I know because I have a systemd.path unit that triggers a service that rsyncs
the db to a backup machine when the db chaneges.