Migrations
Create and run SQL migrations with lock safety, checksum verification, and dry-run planning.
Migrations
Problem: running SQL files manually causes drift across environments.
Solution: use createMigration() and runMigrations().
Create a migration file
import { createMigration } from '@shyk/kadak-orm'
const filePath = await createMigration('create_users_table')
console.log(filePath)KadakORM creates a timestamped SQL file in ./migrations.
Apply migrations
import { runMigrations } from '@shyk/kadak-orm'
const result = await runMigrations({
url: 'postgres://postgres:postgres@localhost:5432/kadak_demo',
dir: './migrations',
tableName: 'kadak_migrations',
dryRun: false,
lockTimeoutMs: 15000,
})
console.log('applied', result.applied)
console.log('skipped', result.skipped)
console.log('planned', result.planned)Safe rollout flow
# 1) plan only
MIGRATIONS_DRY_RUN=1 pnpm migrate
# 2) apply
pnpm migrateBuilt-in safety behavior
- Advisory lock prevents concurrent migration runners.
- Checksum verification detects edited already-applied migration files.
- Sorted filename execution order remains deterministic.