llzai's picture
Upload 1793 files
9853396 verified
package sqlite
import (
"database/sql"
"database/sql/driver"
"fmt"
"modernc.org/sqlite"
)
// https://github.com/ent/ent/discussions/1667
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
}
//nolint:forcetypeassert
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{}})
}