पाठ 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:run

Manual 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 में एक जैसे चलती हैं।