即使设置为非null,NestJs Typeorm也会删除外键列

时间:2019-07-18 16:19:36

标签: mysql postgresql sequelize.js nestjs typeorm

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

每次启动服务器时,它都会在本地开发中删除外键(authorId)列

synchronize: true https://github.com/typeorm/typeorm/issues/2137

enter image description here

我认为这是一个版本兼容性问题,我尝试更改npm模块mysql和mysql2,并将MySQL 8降级为MySQL 5.7。什么都没有。

即使使用过postgresql也不起作用

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

Question.entity.ts文件

Qestion Entity File

User.entity.ts文件

User Entity File

更新:仅当我使用npm run start:dev运行时才会发生此问题,而当使用npm start运行时很好。

2 个答案:

答案 0 :(得分:0)

遇到相同的问题,找不到解决方案,并使用nodemon

进行了修复

答案 1 :(得分:0)

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

<块引用>

一旦投入生产,您需要将模型更改同步到数据库中。通常,一旦您在数据库中获取数据,在生产中使用同步模式同步:true 是不安全的。

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