Created
August 22, 2025 10:12
-
-
Save killwing/32d50b1fa03725d7cf0a3120aa53d74e to your computer and use it in GitHub Desktop.
modernc sqlite driver for ent
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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