You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PostgreSQL database support: BookDB can now keep your library on a PostgreSQL server instead of the local file, so the same catalog is reachable from more than one machine. SQLite stays the default and needs no setup — remote databases are entirely opt-in. PostgreSQL 12 or later is required (the full-text search column uses a stored generated column added in PostgreSQL 12); Test connection reports a clear message and refuses to proceed against an older server.
Settings → Database tab to choose the backend and enter the server details (host, port, database, user, password, TLS mode), with a Test connection button that reports the server version and book count before you commit. Switching the active database restarts the app to load it.
Passwords for remote databases are stored in your operating system's secret store (Windows Credential Manager, macOS Keychain, or Linux Secret Service) — never in plain text. On a system with no secret store available, the PostgreSQL option is disabled with an explanation and SQLite remains available.
Move library (Tools → Maintenance): copy your entire catalog between SQLite and PostgreSQL in either direction. It takes a safety backup first, checks the target isn't about to be overwritten unknowingly, shows per-table progress, verifies every row count matches, and can switch the active database to the target when it finishes.
Restore from a CSV archive backup: it replaces the current library, always taking a safety backup of the live database first, and runs the whole restore as one transaction so a failure leaves your data untouched. When the backup names a different PostgreSQL server, you can restore directly into that server so the data and its connection settings land together.
Multi-client warning: when using a remote database, BookDB notices if another client appears to be connected and offers to quit rather than risk two clients writing at once (with a "connect anyway" override). A crashed client ages out automatically and never locks you out.
Connection-loss handling for remote databases: a clear dialog if the server can't be reached at startup (with Retry / open Settings / Quit), automatic reconnection if the connection drops mid-session, and a Retry / Discard prompt if a save can't reach the server — so your edits are never silently lost.
The Maintenance tools (Tools → Maintenance) now adapt to the active database: on PostgreSQL they run a server-side connectivity and sanity check, VACUUM (ANALYZE), and report the database size, in place of the SQLite-only integrity check and file repair.
Changed
Auto-backup on close now uses the engine-neutral CSV archive when the active database is remote (the file-copy backup remains for local SQLite).