【问题标题】:How `typeorm migration:generate` command know that I am renaming a column?`typeorm migration:generate` 命令如何知道我正在重命名列?
【发布时间】:2022-02-04 01:07:50
【问题描述】:

在 typeorm 中,如果我从以下位置重命名实体的列:

@Column()
address: string

@Column()
userAddress: string

它是否知道我在运行命令时正在重命名列

typeorm migration:generate?

运行迁移时我会丢失任何数据吗?

【问题讨论】:

  • 分享生成的迁移文件。它会准确地告诉你会发生什么

标签: javascript nestjs typeorm


【解决方案1】:

只是为了其他人是否应该在某个时候访问该问题。 (我意识到这是一个老问题)

TypeORM 无法识别它,并会尝试删除包含数据的列并创建一个新列。如果列不可为空或更糟糕的是静默丢弃大量数据,这通常会造成冲突。

在这种情况下,请确保配置生成的迁移或编写您自己的迁移。

【讨论】:

    【解决方案2】:

    命令 migrations:generate 将检查配置文件中提供的实体文件,并使用为您所做的更改创建一个新的迁移文件。因此,如果您在每次更改后运行此命令,您将不会丢失数据。当然,如果您删除列/表,您将丢失其数据,因为您将其删除。

    确保所有路径都在 typeorm.config 文件的“实体”路径数组中

    【讨论】:

      猜你喜欢
      • 2014-04-11
      • 1970-01-01
      • 2023-03-04
      • 2013-02-12
      • 2013-10-28
      • 1970-01-01
      • 2016-01-07
      • 2018-10-24
      • 2019-03-16
      相关资源
      最近更新 更多