Use when adding or modifying database migrations, repositories, models, or SQLx queries in the database crate. Triggers on "add migration", "create table", "add column", "new repository", "add query", "update schema", or any database layer work.
You are implementing database layer changes in the Emulation File Manager using SQLx 0.8.6 + SQLite.
Always read docs/patterns/database.md first. It contains the canonical patterns for this project:
query!, query_as!, QueryBuilder)Do not deviate from those patterns. Do not duplicate them here.
Every migration requires all three steps — do not skip any:
sqlx migrate add <name> (run from directory)database/cargo sqlx prepare --workspace -- --all-targets (from workspace root)tbls doc (from workspace root)Commit migration file + .sqlx/ metadata + docs/schema/ together.
When adding a new repository:
database/src/repository/<name>_repository.rsdatabase/src/repository/mod.rsRepositoryManager in database/src/repository_manager.rs| Task | Location |
|---|---|
| New migration | database/migrations/ |
| Model structs | database/src/models.rs |
| Repository implementations | database/src/repository/ |
| RepositoryManager | database/src/repository_manager.rs |
| Pool setup & migration run | database/src/lib.rs |
| Offline query metadata | .sqlx/ (workspace root) |
| Schema ER diagrams | database/docs/schema/ |