Goal
Move the existing SQLite and MySQL SQL backends to a shared async sqlx substrate before adding PostgreSQL.
Why
PostgreSQL should not be added as a special case. The existing SQL backends need to follow the same async persistence model first so PostgreSQL can land on a common foundation.
Spec
The detailed implementation spec currently lives in:
docs/issues/1525-05-migrate-sqlite-and-mysql-to-sqlx.md
Summary
- Add
sqlx and async persistence infrastructure alongside the current sync drivers.
- Implement parallel async SQLite and MySQL drivers.
- Replace the sync traits and drivers in one focused switch commit.
- Update consumer call sites to await async database methods.
- Remove legacy
r2d2, rusqlite, and mysql driver dependencies once the switch is complete.
Acceptance Criteria
Goal
Move the existing SQLite and MySQL SQL backends to a shared async
sqlxsubstrate before adding PostgreSQL.Why
PostgreSQL should not be added as a special case. The existing SQL backends need to follow the same async persistence model first so PostgreSQL can land on a common foundation.
Spec
The detailed implementation spec currently lives in:
docs/issues/1525-05-migrate-sqlite-and-mysql-to-sqlx.mdSummary
sqlxand async persistence infrastructure alongside the current sync drivers.r2d2,rusqlite, andmysqldriver dependencies once the switch is complete.Acceptance Criteria
sqlxwith async trait methods.build()no longer eagerly creates tables.sqlx::query()DDL, notsqlx::migrate!().tracker-core.cargo test --workspace --all-targetspasses.linter allexits with code0.cargo machetereports no unused dependencies.