| | package sqlite
|
| |
|
| | import (
|
| | "database/sql"
|
| | "database/sql/driver"
|
| | "fmt"
|
| |
|
| | "modernc.org/sqlite"
|
| | )
|
| |
|
| |
|
| | type sqliteDriver struct {
|
| | *sqlite.Driver
|
| | }
|
| |
|
| | func (d sqliteDriver) Open(name string) (driver.Conn, error) {
|
| | 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 {
|
| | if err := conn.Close(); err != nil {
|
| | return nil, fmt.Errorf("failed to close connection: %w", err)
|
| | }
|
| |
|
| | return nil, fmt.Errorf("failed to enable foreign keys: %w", err)
|
| | }
|
| |
|
| | return conn, nil
|
| | }
|
| |
|
| | func init() {
|
| | sql.Register("sqlite3", sqliteDriver{Driver: &sqlite.Driver{}})
|
| | }
|
| |
|