DB Migration Generator
Overview
สร้าง database migration files อัตโนมัติจาก schema changes พร้อม validation, rollback scripts และ safety checks
Why This Matters
- •Safety: Auto-generate rollback scripts
- •Consistency: Standard migration format
- •Validation: Check before apply
- •Documentation: Auto-document changes
Quick Start
bash
# Generate migration
npx generate-migration add_users_table
# Output:
migrations/
└── 20240116120000_add_users_table.ts
├── up() # Apply migration
└── down() # Rollback migration
Generated Migration
typescript
// 20240116120000_add_users_table.ts
export async function up(db: Database) {
await db.schema.createTable('users', (table) => {
table.uuid('id').primary();
table.string('email').unique().notNullable();
table.string('name').notNullable();
table.timestamps(true, true);
});
await db.schema.createIndex('users', 'email');
}
export async function down(db: Database) {
await db.schema.dropTable('users');
}
From Schema Diff
bash
# Generate from Prisma schema changes npx generate-migration --from-prisma # Detects: - New tables - New columns - Index changes - Constraint changes
Safety Checks
typescript
// Auto-generated safety checks
export async function validate(db: Database) {
// Check table doesn't exist
const exists = await db.schema.hasTable('users');
if (exists) {
throw new Error('Table users already exists');
}
// Check dependencies
// Check data integrity
}
Summary
DB Migration Generator: สร้าง migrations อัตโนมัติ
Features:
- •Up/down scripts
- •Rollback safety
- •Validation
- •From schema diff
Usage:
bash
npx generate-migration add_users_table npm run migrate