recipe-manager/migrations/2026-03-28-add-user-metadat...

44 lines
1.3 KiB
Markdown

# Migration — 2026-03-28 — add user metadata fields
## Purpose
Add user-specific metadata fields to support CopyMeThat import:
- `made` — Boolean flag for "I've cooked this"
- `rating` — 1-5 star rating
- `notes` — General recipe notes/comments
## Schema changes
```sql
ALTER TABLE recipes ADD COLUMN made INTEGER DEFAULT 0; -- SQLite boolean as 0/1
ALTER TABLE recipes ADD COLUMN rating INTEGER; -- 1-5 or NULL
ALTER TABLE recipes ADD COLUMN notes TEXT; -- Freeform text
```
## Field specifications
- **made:** INTEGER (0 = false, 1 = true), NOT NULL, default 0
- **rating:** INTEGER (1-5), NULL allowed (no rating yet)
- **notes:** TEXT, NULL allowed (empty = no notes)
## Runtime behavior
- New DBs: `schema.sql` will be updated to include these fields
- Existing DBs: Runtime migration helper will add columns if missing
## Updated paths
- `src/backend/db/schema.sql`
- `src/backend/db/schemaMigrations.ts`
- `src/backend/types/recipe.ts`
- `src/backend/repositories/RecipeRepository.ts`
- `src/frontend/types/recipe.ts`
## Validation rules
- `made`: Must be 0 or 1
- `rating`: If present, must be 1-5
- `notes`: Max length 10,000 characters (reasonable limit)
## Operational note
Run: `npm run migrate` (idempotent, safe for existing DBs)
---
**Migration date:** 2026-03-28
**Reason:** CopyMeThat import feature support