提问人:madhan kumar 提问时间:11/12/2023 更新时间:11/12/2023 访问量:31
NestJS TypeORM更改了主键的类型,是否会影响数据库中已有的值,如何安全迁移?
NestJS TypeORM change type of primary key, will it impact the existing values in the db, how to migrate them safely?
问:
我正在使用 NestJS,有一个 BaseEntity 作为配置
@PrimaryGeneratedColumn()
id: number;
但是,我想改变这一点
@PrimaryGeneratedColumn()
id: string;
我正在准备迁移脚本,但我想知道,这会影响表中的现有值还是隐式转换将由 DB 处理?
我正在使用 TypeORM、Postgresql DB。
答:
0赞
Maimoona Abid
11/12/2023
#1
在 TypeORM 中,将主键的类型从数字更改为字符串可能会影响数据库的当前值,因此必须谨慎处理迁移。主键类型不会由 PostgreSQL 隐式转换,因此您需要显式处理数据迁移。
但是,在进行任何更改之前,请备份 PostgreSQL 数据库。接下来,使用 TypeORM 创建新的迁移脚本并更改 id 列的类型。在迁移脚本中创建自定义逻辑,以管理当前数字 ID 到字符串 ID 的转换。这可能包括创建新列、更新值和删除旧列。
希望它能:)
评论
sync