Part of EPIC #1525 (overhaul persistence).
Spec:
- docs/issues/1525-08-add-postgresql-driver.md
Goal:
Add PostgreSQL as a third production SQL backend by implementing an async sqlx-backed driver, wiring it into configuration/factory, adding PostgreSQL migration files aligned with existing migration history, and extending QA harnesses (compatibility matrix, qBittorrent E2E, benchmarks) so PostgreSQL has parity with SQLite/MySQL.
Planned tasks:
- Add
Driver::PostgreSQL in configuration + URL password masking test.
- Enable sqlx
postgres feature and add 4 PostgreSQL migration files (timestamp-aligned).
- Implement
packages/tracker-core/src/databases/driver/postgres.rs.
- Wire PostgreSQL in driver factory and setup dispatch.
- Add driver tests with testcontainers + env-gated execution.
- Extend DB compatibility matrix to loop PostgreSQL versions.
- Extend qBittorrent E2E runner with
--db-driver postgresql (and keep parity with mysql/sqlite3).
- Extend benchmark runner with PostgreSQL.
- Add default PostgreSQL container config and update container/docs/cspell.
Acceptance criteria and implementation details are in the spec file above.
This issue should be implemented in a dedicated branch from develop and merged via a reviewable PR.
Part of EPIC #1525 (overhaul persistence).
Spec:
Goal:
Add PostgreSQL as a third production SQL backend by implementing an async sqlx-backed driver, wiring it into configuration/factory, adding PostgreSQL migration files aligned with existing migration history, and extending QA harnesses (compatibility matrix, qBittorrent E2E, benchmarks) so PostgreSQL has parity with SQLite/MySQL.
Planned tasks:
Driver::PostgreSQLin configuration + URL password masking test.postgresfeature and add 4 PostgreSQL migration files (timestamp-aligned).packages/tracker-core/src/databases/driver/postgres.rs.--db-driver postgresql(and keep parity with mysql/sqlite3).Acceptance criteria and implementation details are in the spec file above.
This issue should be implemented in a dedicated branch from
developand merged via a reviewable PR.