Skip to content

Instantly share code, notes, and snippets.

@killwing
Created August 22, 2025 10:12
Show Gist options
  • Save killwing/32d50b1fa03725d7cf0a3120aa53d74e to your computer and use it in GitHub Desktop.
Save killwing/32d50b1fa03725d7cf0a3120aa53d74e to your computer and use it in GitHub Desktop.
modernc sqlite driver for ent
package sqlite
import (
"database/sql"
"database/sql/driver"
"fmt"
"modernc.org/sqlite"
)
type sdriver struct {
*sqlite.Driver
}
func (d sdriver) 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 {
conn.Close()
return nil, fmt.Errorf("failed to enable foreign keys: %w", err)
}
return conn, nil
}
func init() {
sql.Register("sqlite3", sdriver{Driver: &sqlite.Driver{}})
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment