postgresql NestJS TypeORM改变主键的类型,是否会影响数据库中已有的值,如何安全迁移?

omhiaaxx  于 2023-11-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(125)

我正在使用NestJS,有一个BaseEntity作为配置

@PrimaryGeneratedColumn()
  id: number;

字符串
但我想改变这一点

@PrimaryGeneratedColumn()
  id: string;


我正在准备迁移脚本,但我想知道,这是否会影响表中的现有值,或者隐式转换将由DB处理?
我用的是TypeORM,Postgresql DB.

pbwdgjma

pbwdgjma1#

在TypeORM中,将主键的类型从numeric更改为string会影响数据库的当前值,因此您必须谨慎处理迁移。PostgreSQL不会隐式转换主键类型,因此您需要显式处理数据迁移。
但是,在进行任何更改之前,请对PostgreSQL数据库进行备份。下一步使用TypeORM创建新的迁移脚本并更改id列的类型。在迁移脚本中创建自定义逻辑以管理当前数字ID到字符串ID的转换。这可能包括创建新列,更新值和删除旧列。
希望有帮助:)

相关问题