पाठ 19 / 34
Migrations
TypeORM migrations से database schema को version करें: generate, run और custom SQL बदलाव लिखें।
Migrations generate और run करें
TypeORM CLI entity changes के आधार पर migrations generate करता है; database को update करने के लिए run करें।
npx typeorm migration:generate ./src/migrations/CreateUserTable
npx typeorm migration:runManual migration
Complex schema changes के लिए custom SQL migration लिखें।
import { MigrationInterface, QueryRunner } from 'typeorm';
export class CreateUserTable123456 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query('CREATE TABLE user (id SERIAL PRIMARY KEY, name VARCHAR NOT NULL)');
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query('DROP TABLE user');
}
}production में synchronize कभी नहीं
synchronize: true entities से मिलाने के लिए columns drop कर सकता है। इसे सिर्फ़ local में use करें; production में reviewed migrations चलाएँ।
त्वरित जाँच
त्वरित जाँच: database हाथ से बदलने की जगह migration क्यों बनाएँ?
- migrations queries तेज़ करते हैं
- बदलाव versioned, reviewable और हर environment में दोहराने योग्य होते हैं
- TypeORM manual SQL मना करता है
Answer
बदलाव versioned, reviewable और हर environment में दोहराने योग्य होते हैं — migration files git में रहती हैं और dev, staging, prod में एक जैसे चलती हैं।