Создание вручную
Эта страница переведена 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
}
}