跳至主内容区

手动创建迁移

非官方测试版翻译

本页面由 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> {}
}

需要实现两个核心方法:updownup包含执行迁移的代码, down用于撤销up所做的变更。 down方法用于回滚最近一次迁移。

updown方法中可通过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
}
}