mirror of
https://github.com/versia-pub/versia-go.git
synced 2025-12-06 06:28:18 +01:00
30 lines
642 B
Go
30 lines
642 B
Go
package main
|
|
|
|
import (
|
|
"database/sql/driver"
|
|
|
|
"github.com/pkg/errors"
|
|
"github.com/rs/zerolog/log"
|
|
"modernc.org/sqlite"
|
|
)
|
|
|
|
type sqliteDriver struct {
|
|
*sqlite.Driver
|
|
}
|
|
|
|
func (d sqliteDriver) Open(name string) (driver.Conn, error) {
|
|
log.Trace().Str("name", name).Msg("Opening SQLite connection")
|
|
conn, err := d.Driver.Open(name)
|
|
if err != nil {
|
|
return conn, err
|
|
}
|
|
c := conn.(interface {
|
|
Exec(stmt string, args []driver.Value) (driver.Result, error)
|
|
})
|
|
if _, err := c.Exec("PRAGMA foreign_keys = on;", nil); err != nil {
|
|
conn.Close()
|
|
return nil, errors.Wrap(err, "failed to enable enable foreign keys")
|
|
}
|
|
return conn, nil
|
|
}
|