我最近在问题表中添加了一个外键 (authorId) 关系,每个问题都应该有与之关联的 userId。

每次我启动服务器时,它都会在本地开发中删除外键(authorId)列
synchronize: true https://github.com/typeorm/typeorm/issues/2137

mysql - NestJs Typeorm 删除外键列,即使设置为非空-LMLPHP

我认为是版本兼容性问题,我尝试更改 npm 模块 mysql 和 mysql2,并将 MySQL 8 降级到 MySQL 5.7。什么都行不通。

即使使用 postgresql 也不起作用

有解决方案吗?或者我应该使用 sequelize 还是其他东西?

Question.entity.ts 文件

mysql - NestJs Typeorm 删除外键列,即使设置为非空-LMLPHP

User.entity.ts 文件

mysql - NestJs Typeorm 删除外键列,即使设置为非空-LMLPHP

更新: 这个问题仅在我使用 npm run start:dev 运行时发生,使用 npm start 运行时没问题。

最佳答案

尝试将 synchronize: false 中的同步模式更改为 ormconfig.json 。每次服务器重新启动时,外键也会重新启动。您可以学习如何使用迁移和种子,尤其是在生产方面

Typeorm - 迁移:https://typeorm.io/#/migrations

关于mysql - NestJs Typeorm 删除外键列,即使设置为非空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57098883/

10-11 10:26