Database
tvarr supports SQLite, PostgreSQL, and MySQL.
SQLite (Default)
The simplest option, perfect for single-instance deployments:
TVARR_DATABASE_DRIVER=sqlite
TVARR_DATABASE_DSN=/data/tvarr.db
note
SQLite only supports a single replica. For high availability, use PostgreSQL or MySQL.
PostgreSQL
For production deployments:
TVARR_DATABASE_DRIVER=postgres
TVARR_DATABASE_DSN="host=localhost user=tvarr password=secret dbname=tvarr port=5432 sslmode=disable"
Or connection URL format:
TVARR_DATABASE_DSN="postgres://tvarr:secret@localhost:5432/tvarr?sslmode=disable"
MySQL
TVARR_DATABASE_DRIVER=mysql
TVARR_DATABASE_DSN="tvarr:secret@tcp(localhost:3306)/tvarr?charset=utf8mb4&parseTime=True"
Connection Pool
Tune the connection pool for your workload:
TVARR_DATABASE_MAX_OPEN_CONNS=10
TVARR_DATABASE_MAX_IDLE_CONNS=5
TVARR_DATABASE_CONN_MAX_LIFETIME=1h
Migrations
Migrations run automatically on startup. tvarr tracks applied migrations and only runs new ones.
Backups
SQLite
The database is a single file. Back it up like any file:
# While tvarr is running (SQLite handles this safely)
cp /data/tvarr.db /backup/tvarr-$(date +%Y%m%d).db
PostgreSQL/MySQL
Use native backup tools:
# PostgreSQL
pg_dump tvarr > backup.sql
# MySQL
mysqldump tvarr > backup.sql