Back to directory
glebarez avatar

go-sqlite

pure-Go SQLite driver for Go (SQLite embedded). Read more below about its uses, features, and usage.

Clone repository

git clone https://github.com/glebarez/go-sqlite.git

869

Stars

43

Forks

7

Watchers

BSD-3-Clause

License

Tests badge

go-sqlite

This is a pure-Go SQLite driver for Golang's native database/sql package. The driver has Go-based implementation of SQLite embedded in itself (so, you don't need to install SQLite separately)

This is a fork of cznic/sqlite with changes to make it compatible with GORM.

Usage

Example

package main

import (
	"database/sql"
	"log"

	_ "github.com/glebarez/go-sqlite"
)

func main() {
	// connect
	db, err := sql.Open("sqlite", ":memory:")
	if err != nil {
		log.Fatal(err)
	}

	// get SQLite version
	_ := db.QueryRow("select sqlite_version()")
}

Connection string examples

  • in-memory SQLite: ":memory:"
  • on-disk SQLite: "path/to/some.db"
  • Foreign-key constraint activation: ":memory:?_pragma=foreign_keys(1)"

Settings PRAGMAs in connection string

Any SQLIte pragma can be preset for a Database connection using _pragma query parameter. Examples:

Multiple PRAGMAs can be specified, e.g.:
path/to/some.db?_pragma=busy_timeout(5000)&_pragma=journal_mode(WAL)

Releases

Add compat package that register driver as sqlite3 (#150)

What's Changed

build(deps): bump actions/setup-go from 3 to 4 by @dependabot in #93 build(deps): bump golang.org/x/sys from 0.4.0 to 0.7.0 by @dependabot in #95 build(deps): bump modernc.org/sqlite f...

Mar 29, 2023

upgrade to SQLite 3.41.2

Download .zip

What's Changed

build(deps): bump modernc.org/sqlite from 1.20.4 to 1.21.0 by @dependabot in #91 build(deps): bump modernc.org/sqlite from 1.21.0 to 1.21.1 by @dependabot in #94

Full Changelog: v1.21...

Mar 6, 2023

Use default BUSY_TIMEOUT

Download .zip

This release sets BUSY_TIMEOUT to 5000 (ms) by default. This same behaviour can be found in https://github.com/mattn/go-sqlite3.

What's Changed bump modernc.org/sqlite from 1.20.0 to 1.20.3 Full Changelog: v1.20.0...v1.20.3