使用 TypeORM 和 NestJs 和 Typescript 创建新迁移时出错

Mat*_*ano 11 node.js npm typescript typeorm nestjs

我有一个使用 typescript 的节点应用程序,我正在尝试按照 TypeORM 的文档创建一个新的迁移。

首先,我安装了CLI,像这样设置我的连接选项,当我尝试运行此命令时:

npm run typeorm migration:create -- -n migrationNameHere 我收到以下错误:

迁移创建过程中出错:类型错误:无法读取对象中未定义的属性“startsWith”。(...\src\commands\MigrationCreateCommand.ts:62:37) 在步骤 (...\node_modules\typeorm\node_modules\tslib\tslib.js:141:27) 在 Object.throw (...\node_modules \typeorm\node_modules\tslib\tslib.js:122:57) 在被拒绝 (...\node_modules\typeorm\node_modules\tslib\tslib.js:113:69) npm ERR!代码 ELIFECYCLE npm ERR!错误号 1 npm 错误号!backend@0.0.1 typeorm: node --require ts-node/register ./node_modules/typeorm/cli.js "migration:create" "-n" "migrationNameHere"` npm ERR!退出状态 1

这些是我在 package.json 中的嵌套依赖项:

我的节点版本是v12.14.1,nestjs 是7.0.0和 nestjs/typeorm 是7.1.3

我的 app.module.ts 是这样的:

TypeOrmModule.forRoot({
      type: 'mysql',
      host: database().host,
      port: parseInt(database().port),
      username: database().username,
      password: database().password,
      database: database().schema,
      entities: [Question, QuestionOption],
      migrations: ['migration/*.js'],
      cli: {
        migrationsDir: 'migration'
      },
      synchronize: true,
    })
Run Code Online (Sandbox Code Playgroud)

有没有人遇到过这种问题?

ind*_*nin 32

尝试添加带有迁移目的地的标志,例如 npx typeorm migration:create -n YourName -d src/migrations

  • 谢谢,秘密是 -d src/migrations,这样就创建了迁移文件。一件奇怪的事情是,我在 app.module.ts 中进行了配置(请参阅migrationDir),我也尝试添加 src/migration 但发生了同样的错误,但您的解决方案运行得很好 (2认同)