TypeORM 无法生成迁移

问题描述 投票:0回答:1

我正在尝试将 TypeORM 从 v2 迁移到 v3。除了生成迁移之外,我的新

dataSource.ts
文件中的所有内容都可以使用。在我的 package.json
"typeorm": "typeorm-ts-node-commonjs"
中给出此命令,我正在运行此 CLI 命令来生成迁移:
yarn typeorm migration:generate ./src/migrations/test-migration -d src/dataSource.ts
但是我收到以下错误:

迁移生成时出错: 类型错误:无法读取未定义的属性(读取“名称”) 在 MysqlQueryRunner.changeColumn...

我能够找到与此问题相关的 Github 票证,但那里提出的解决方案是实体类中没有任何构造函数,并且我没有包含构造函数的实体类。

typeorm
1个回答
0
投票

这个问题有一个非常具体的解决方案,我将介绍它,但我也会逐步介绍发现问题的过程,这对一般人更有帮助。

具体问题

我们的一个表有一列被设置为

@Column
装饰器内的主键,但也没有设置
unique: true
属性。如果 TypeORM 通过有用的错误消息对此进行显式检查,那就太好了,但事实就是如此。

发现问题

为了发现问题,运行了生成迁移的命令:

yarn typeorm migration:generate ./src/migrations/test-migration -d src/dataSource.ts
在 vscode 的 Javascript 调试终端中,并在“运行和调试”窗口中检查了“未捕获的异常”和“捕获的异常”断点。一旦我逐步解决了不必要的错误并发现终端中抛出的异常,我就可以四处查看并找到
clonedTable
oldColumn
的值来确定哪个表和列是问题所在。

© www.soinside.com 2019 - 2024. All rights reserved.