diff options
Diffstat (limited to 'src/sql.go')
-rw-r--r-- | src/sql.go | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/sql.go b/src/sql.go new file mode 100644 index 0000000..858878b --- /dev/null +++ b/src/sql.go @@ -0,0 +1,31 @@ +package main + +import ( + "database/sql" + "database/sql/driver" + "modernc.org/sqlite" +) + +type sqlite3Driver struct { + *sqlite.Driver +} + +type sqlite3DriverConn interface { + Exec(string, []driver.Value) (driver.Result, error) +} + +func (d sqlite3Driver) Open(name string) (conn driver.Conn, err error) { + conn, err = d.Driver.Open(name) + if err != nil { + return + } + _, err = conn.(sqlite3DriverConn).Exec("PRAGMA foreign_keys = ON;", nil) + if err != nil { + _ = conn.Close() + } + return +} + +func init() { + sql.Register("sqlite3", sqlite3Driver{Driver: &sqlite.Driver{}}) +} |