跳至主内容区

设置

非官方测试版翻译

本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →

在使用迁移功能之前,需要正确配置 DataSource 选项:

export default new DataSource({
// basic setup
synchronize: false,
migrations: [__dirname + "/migrations/**/*{.js,.ts}"],

// optional
migrationsRun: false,
migrationsTableName: "migrations",
migrationsTransactionMode: "all",

// other options...
})

synchronise

关闭自动模式同步是使用迁移功能的前提条件,否则迁移将失去意义。

migrations

定义需要由 TypeORM 加载的迁移列表。支持直接指定迁移类或包含迁移文件的目录。

最简单的做法是指定迁移文件所在的目录(支持 glob 模式):

migrations: [__dirname + "/migrations/**/*{.js,.ts}"]

同时定义 .js.ts 扩展名可实现在开发环境运行迁移,并在生产环境使用编译后的 JavaScript 运行(例如在 Docker 镜像中)。

也可以显式指定具体的迁移类来实现更精细的控制:

import FirstMigration from "./migrations/TIMESTAMP-first-migration"
import SecondMigration from "./migrations/TIMESTAMP-second-migration"

export default new DataSource({
migrations: [FirstMigration, SecondMigration],
})

但这种方式需要更多手动操作且容易出错。

  • migrationsRun - 是否在每次应用启动时自动运行数据迁移

可选配置

migrationsRun

指示是否在每次应用启动时自动运行迁移。默认值:false

migrationsTableName

可自定义存储迁移执行记录的表名。默认表名为 'migrations'

migrationsTableName: "some_custom_migrations_table"

migrationsTransactionMode

控制迁移运行时的事务模式,可选值包括:

  • all默认) - 将所有迁移包装在单个事务中运行

  • none

  • each