veza/docs/MIGRATIONS.md
senke c785e61e69
Some checks failed
Backend API CI / test-unit (push) Failing after 0s
Backend API CI / test-integration (push) Failing after 0s
Frontend CI / test (push) Failing after 0s
Storybook Audit / Build & audit Storybook (push) Failing after 0s
feat(v0.701): AdminTransfers page/route, MSW, stories, Deep Health, API ref, docs, scope v0.702
- Step 13: AdminTransfersPage, LazyAdminTransfers, route /admin/transfers
- Step 14: MSW handlers admin transfers
- Step 15: AdminTransfersView stories (Default, Empty, WithFailedTransfers, Error, Loading)
- Step 16-17: DeepHealth handler (disk, config), GET /health/deep
- Step 19: health_deep_test.go (4 tests)
- Step 20: docs/API_REFERENCE.md
- Step 21: Archive V0_604, MIGRATIONS.md migration 116
- Step 22: CHANGELOG, PROJECT_STATE, FEATURE_STATUS v0.701
- Step 23: RETROSPECTIVE_V0701, V0_702 placeholder, SCOPE_CONTROL, .cursorrules
- Step 24: Archive V0_701_RELEASE_SCOPE
- Fix: AdminTransfersView Select component (use options API)
2026-02-23 23:42:02 +01:00

1.6 KiB

Database Migrations

Overview

Veza uses SQL migrations stored in veza-backend-api/migrations/. Migrations are applied in order by filename (lexicographic sort).

Migration Naming

  • Format: NNN_description.sql (e.g. 101_product_reviews.sql)
  • Use snake_case for descriptions
  • Down migrations (rollback): NNN_description_down.sql when needed

Squash Script

The scripts/squash_migrations.sh script generates a baseline SQL file that concatenates all migrations into a single file. This is useful for:

  • Fresh database setup
  • Creating a clean baseline for new environments
  • Versioned releases (e.g. baseline_v0601.sql)

Usage

# From project root
./scripts/squash_migrations.sh

Output: veza-backend-api/migrations/baseline_v0601.sql

Procedure

  1. Run the script after adding new migrations
  2. Update the version in the script (e.g. baseline_v0601.sql) for each release
  3. Update the migration range comment (e.g. 001-113) to reflect the latest migration number
  4. The baseline file is auto-generated; do not edit it manually

Recent Migrations

# File Description
116 116_seller_transfers_retry.sql v0.701: Add retry_count, next_retry_at to seller_transfers; index for failed retries

Adding New Migrations

  1. Create a new file: veza-backend-api/migrations/NNN_description.sql
  2. Use the next available number (check existing migrations)
  3. Write idempotent SQL when possible (e.g. IF NOT EXISTS)
  4. Test locally before committing
  5. Run squash_migrations.sh to update the baseline for the release