quality / commitlint (push) Skipped
CD / update-wiki (push) Failing after 7s
quality / changes (push) Successful in 4s
quality / docker-check (push) Skipped
quality / web (push) Failing after 38s
quality / api (push) Successful in 49s
CD / quality (push) Failing after 1m36s
CD / publish (push) Skipped
27 lines
682 B
Plaintext
27 lines
682 B
Plaintext
---
|
|
description: Drizzle ORM + SQLite — schema, migrations, queries
|
|
globs: packages/db/**/*,apps/api/src/services/**/*
|
|
alwaysApply: false
|
|
---
|
|
|
|
# Backend Drizzle
|
|
|
|
MCP Context7 (`drizzle-orm`, `drizzle-kit`) — [`backend-mcp.mdc`](backend-mcp.mdc).
|
|
|
|
## Schema
|
|
|
|
- `packages/db/src/schema/` — source of truth
|
|
- Migrations: `drizzle-kit generate` / `migrate`
|
|
- WAL + `foreign_keys` при открытии SQLite
|
|
- Индекс `idx_dns_records_domain_cf_id` на `(domain_id, cf_record_id)`
|
|
|
|
## Queries
|
|
|
|
- Batch queries (`inArray`, JOINs) — не N+1 loops
|
|
- UNIQUE violations → `CONFLICT` (409)
|
|
- Multi-step → `db.transaction()`
|
|
|
|
## SQLite
|
|
|
|
См. [`sqlite.mdc`](sqlite.mdc).
|