kuatia-storage-sql
SQL-backed Store implementation for the kuatia ledger.
Uses sqlx::Any for database-agnostic queries. Enable features to select
the backend:
[]
= { = ["sqlite"] } # or "postgres"
Backends
| Feature | Backend | Status |
|---|---|---|
sqlite (default) |
SQLite via sqlx | Conformance tests pass |
postgres |
PostgreSQL via sqlx | Portable DDL/queries; needs a running instance to test |
The backend is detected at migration time and the matching DDL is applied from
src/migrations/{sqlite,postgres}/ (SQLite uses BLOB, PostgreSQL uses
BYTEA). Applied migrations are tracked in a _migrations table, so
migrate() is idempotent. Upserts use portable ON CONFLICT … DO UPDATE, and
all ids are generated in Rust (no AUTOINCREMENT/SERIAL).
Usage
use SqlStore;
let pool = new
.connect.await?;
let store = new;
store.migrate.await?;
Schema
Tables: accounts, postings, transfers, transfer_accounts, sagas,
events, books. Migrations run via store.migrate().