Flamenco
About Download Documentation FAQ Get Involved Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Database

Flamenco Manager and Worker use SQLite as database, and GORM as object-relational mapper (but see the note below).

Since SQLite has limited support for altering table schemas, migration requires copying old data to a temporary table with the new schema, then swap out the tables. Because of this, avoid NOT NULL columns, as they will be problematic in this process.

SQLC

Flamenco mostly uses GORM for interfacing with its SQLite database. This is gradually being phased out, to be replaced with SQLC.

To generate the SQLC schema file:

make db-migrate-up
go run ./cmd/sqlc-export-schema

To generate Go code with SQLC after changing schema.sql or queries.sql:

go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest
sqlc generate