【问题标题】:NestJs Typeorm drops foreign key column, even if set to not nullNestJs Typeorm 丢弃外键列,即使设置为非空
【发布时间】:2019-11-27 15:31:51
【问题描述】:

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

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

synchronize: truehttps://github.com/typeorm/typeorm/issues/2137

我还以为是版本兼容问题,我试过改npm模块mysql和mysql2,把MySQL 8降级到MySQL 5.7。没有任何效果。

即使使用postgresql 也不起作用

有解决办法吗?或者我应该使用sequelize 还是别的什么?

Question.entity.ts 文件

User.entity.ts 文件

更新:只有当我使用npm run start:dev 运行时才会出现此问题,使用npm start 运行时会出现此问题。

【问题讨论】:

  • 我也有同样的问题。你还记得你当时是怎么解决的吗?
  • 对我来说这是文件系统问题,我使用的是 Windows 和 WSL。删除了再次克隆的代码并npm install
  • 您能否将代码附加为文本而不是图像?

标签: mysql postgresql sequelize.js nestjs typeorm


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2022-01-26
    • 2020-12-20
    • 1970-01-01
    • 2016-07-14
    • 2016-08-09
    • 2012-08-23
    • 1970-01-01
    • 2021-09-06
    • 2021-12-24
    相关资源
    最近更新 更多