registered custom cgo sqlite driver

This commit is contained in:
Gani Georgiev 2023-05-27 09:24:18 +03:00
parent dcdf43f0fc
commit b1307c9041
2 changed files with 12 additions and 2 deletions

View File

@ -19,7 +19,7 @@ func init() {
// Note 2: the busy_timeout pragma must be first because
// the connection needs to be set to block on busy before WAL mode
// is set in case it hasn't been already set by another connection.
sql.Register("sqlite3_with_connect_hook",
sql.Register("pb_sqlite3",
&sqlite3.SQLiteDriver{
ConnectHook: func(conn *sqlite3.SQLiteConn) error {
_, err := conn.Exec(`
@ -34,10 +34,12 @@ func init() {
},
},
)
dbx.BuilderFuncMap["pb_sqlite3"] = dbx.BuilderFuncMap["sqlite3"]
}
func connectDB(dbPath string) (*dbx.DB, error) {
db, err := dbx.Open("sqlite3_with_connect_hook", dbPath)
db, err := dbx.Open("pb_sqlite3", dbPath)
if err != nil {
return nil, err
}

View File

@ -105,6 +105,14 @@ func NewTestApp(optTestDataDir ...string) (*TestApp, error) {
return nil, err
}
// ensure that the Dao and DB configurations are properly loaded
if _, err := app.Dao().DB().NewQuery("Select 1").Execute(); err != nil {
return nil, err
}
if _, err := app.LogsDao().DB().NewQuery("Select 1").Execute(); err != nil {
return nil, err
}
// force disable request logs because the logs db call execute in a separate
// go routine and it is possible to panic due to earlier api test completion.
app.Settings().Logs.MaxDays = 0