mirror of
https://github.com/navidrome/navidrome.git
synced 2026-08-01 07:21:17 +00:00
48 lines
1.8 KiB
Markdown
48 lines
1.8 KiB
Markdown
# SQLite Configuration Options
|
|
|
|
The following SQLite-specific configuration options are available under the `SQLite` section:
|
|
|
|
## Basic Options
|
|
|
|
### JournalMode
|
|
|
|
- **Default:** `"WAL"`
|
|
- **Options:** `"DELETE"`, `"TRUNCATE"`, `"PERSIST"`, `"MEMORY"`, `"WAL"`, `"OFF"`
|
|
- **Description:** Controls how SQLite manages its journal file. WAL (Write-Ahead Logging) mode generally provides better concurrency and performance but may not work on some network filesystems.
|
|
|
|
### BusyTimeout
|
|
|
|
- **Default:** `5000` (milliseconds)
|
|
- **Description:** How long SQLite should wait when the database is locked before returning a "database is locked" error. Higher values allow more concurrency but may impact responsiveness.
|
|
|
|
### SyncMode
|
|
|
|
- **Default:** `"NORMAL"`
|
|
- **Options:** `"OFF"`, `"NORMAL"`, `"FULL"`, `"EXTRA"`
|
|
- **Description:** Controls how aggressively SQLite writes data to disk. NORMAL provides a good balance between safety and performance.
|
|
|
|
### MaxConnections
|
|
|
|
- **Default:** `0` (uses max(4, number of CPU cores))
|
|
- **Description:** Maximum number of concurrent database connections. Lower this if you experience "database is locked" errors, especially on network filesystems.
|
|
|
|
## Example Configuration
|
|
|
|
```toml
|
|
[SQLite]
|
|
JournalMode = "WAL" # Enable Write-Ahead Logging for better concurrency
|
|
BusyTimeout = 5000 # Wait up to 5 seconds for locks to clear
|
|
SyncMode = "NORMAL" # Good balance of durability and performance
|
|
MaxConnections = 4 # Limit concurrent connections if needed
|
|
```
|
|
|
|
## Network Filesystem Considerations
|
|
|
|
If your database is on a network filesystem (NFS, CIFS, etc.):
|
|
|
|
1. Consider moving the database to local storage
|
|
2. If using network storage is required:
|
|
- Set `JournalMode = "DELETE"`
|
|
- Lower `MaxConnections` to reduce contention
|
|
- Increase `BusyTimeout` for better reliability
|