Перейти к основному содержанию

Создание вручную

Неофициальный Бета-перевод

Эта страница переведена PageTurner AI (бета). Не одобрена официально проектом. Нашли ошибку? Сообщить о проблеме →

Вы можете создать новую миграцию через CLI, указав её имя и расположение:

npx typeorm migration:create <path/to/migrations>/<migration-name>

Например:

npx typeorm migration:create src/db/migrations/post-refactoring

После выполнения команды в директории src/db/migrations появится новый файл с именем {TIMESTAMP}-post-refactoring.ts, где {TIMESTAMP} — временная метка момента генерации миграции.

Теперь откройте файл и добавьте SQL-запросы для миграции. Внутри файла вы увидите следующее содержимое:

import { MigrationInterface, QueryRunner } from "typeorm"

export class PostRefactoringTIMESTAMP implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {}

async down(queryRunner: QueryRunner): Promise<void> {}
}

Необходимо заполнить два метода: up и down. up содержит код для применения миграции. down отменяет изменения из up. Метод down используется для отката последней миграции.

Внутри обоих методов up и down доступен объект QueryRunner. Все операции с базой выполняются через него. Подробнее о исполнителе запросов.

Вот как выглядит миграция для изменения Post:

import { MigrationInterface, QueryRunner } from "typeorm"

export class PostRefactoringTIMESTAMP implements MigrationInterface {
async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "post" RENAME COLUMN "title" TO "name"`,
)
}

async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "post" RENAME COLUMN "name" TO "title"`,
) // reverts things made in "up" method
}
}