【问题标题】:NestJS, PortsgreSQL and TypeORM - Migrations not running properlyNestJS、PortsgreSQL 和 TypeORM - 迁移运行不正常
【发布时间】:2020-12-14 10:49:41
【问题描述】:

当尝试运行 TypeORM 迁移时,无论是在应用程序启动时自动运行还是通过 TypeORM CLI 手动运行,都只会创建迁移表(并且它保持为空)。迁移文件本身没有被执行。

这是我的 tsconfig.json

{
  "compilerOptions": {
    "module": "commonjs",
    "declaration": true,
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "allowSyntheticDefaultImports": true,
    "target": "es2017",
    "sourceMap": true,
    "outDir": "./dist",
    "baseUrl": "./",
    "incremental": true
  }
}

这是我的 package.json

...
"typeorm": "node --require ts-node/register ./node_modules/typeorm/cli.js",
...

这是我的 ormconfig.json

...
"entities": ["dist/**/*.entity{.ts,.js}"],
"synchronize": true,
"migrationsRun": true,
"migrations ": ["dist/migrations/*{.ts,.js}"],
"cli": {
    "migrationsDir": "src/migrations"
  }
...

迁移文件正在通过 TypeORM CLI 创建,它们将填充一些表(插入语句)。它们与数据库架构的更改无关。

拜托,谁能帮我完成它?

【问题讨论】:

  • 运行这个命令npx typeorm migration:run
  • 我试过了,但唯一发生的是迁移表已创建(如果尚未创建)。就好像我用插入语句创建的迁移文件没有找到一样。我检查了"migrations": ["dist/migrations/*{.ts,.js}"],文件(.ts 和 .js)都在那里。

标签: postgresql nestjs typeorm


【解决方案1】:

这是一个愚蠢的! 我想有时候最简单的问题是最难发现的。

问题出在ormconfig.json 文件中。 我删除了这个空白空间 ("migrations ":),一切正常。

【讨论】:

    【解决方案2】:

    你应该已经同步到 false synchronize:false

    然后从终端运行

    npx typeorm migration:generate -n AnyNameYouWant

    之后就可以运行了

    npx typeorm migration:run

    在运行这些命令之前,您可能还必须运行 nest build

    【讨论】:

    • 我忘了说我创建的迁移文件是为了填充一些表(插入语句)。它们与数据库架构的更改无关...我将使用此信息编辑问题。我试过synchronize:false,但结果是一样的。
    猜你喜欢
    • 2022-12-17
    • 2022-01-03
    • 2022-09-24
    • 1970-01-01
    • 2023-01-07
    • 2020-12-30
    • 2023-02-03
    • 1970-01-01
    • 2020-08-26
    相关资源
    最近更新 更多