Awesome Go

go-sqlite

CategoryDatabase
SubcategoryDatabases Implemented in Go
Stars884

A Pure Golang implemented SQLite driver without CGO

About go-sqlite

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)

Frequently Asked Questions

What is go-sqlite?

go-sqlite is a Database library for the Go programming language. A Pure Golang implemented SQLite driver without CGO

How do I install go-sqlite?

Install go-sqlite with the Go module system using `go get glebarez/go-sqlite`. Check the repository for the current installation instructions.

What category does go-sqlite belong to?

go-sqlite is listed under Database, specifically Databases Implemented in Go.

← Back to Databases Implemented in Go