name: DB Migration Generator description: Generator สำหรับสร้าง database migration files พร้อม up/down scripts, validation และ rollback safety
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
# Generate migration
npx generate-migration add_users_table
# Output:
migrations/
└── 20240116120000_add_users_table.ts
├── up() # Apply migration
└── down() # Rollback migration
Generated Migration
// 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
# Generate from Prisma schema changes
npx generate-migration --from-prisma
# Detects:
- New tables
- New columns
- Index changes
- Constraint changes
Safety Checks
// 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:
npx generate-migration add_users_table
npm run migrate