我正在使用NestJS,有一个BaseEntity作为配置
@PrimaryGeneratedColumn()
id: number;
字符串
但我想改变这一点
@PrimaryGeneratedColumn()
id: string;
型
我正在准备迁移脚本,但我想知道,这是否会影响表中的现有值,或者隐式转换将由DB处理?
我用的是TypeORM,Postgresql DB.
我正在使用NestJS,有一个BaseEntity作为配置
@PrimaryGeneratedColumn()
id: number;
字符串
但我想改变这一点
@PrimaryGeneratedColumn()
id: string;
型
我正在准备迁移脚本,但我想知道,这是否会影响表中的现有值,或者隐式转换将由DB处理?
我用的是TypeORM,Postgresql DB.
1条答案
按热度按时间pbwdgjma1#
在TypeORM中,将主键的类型从numeric更改为string会影响数据库的当前值,因此您必须谨慎处理迁移。PostgreSQL不会隐式转换主键类型,因此您需要显式处理数据迁移。
但是,在进行任何更改之前,请对PostgreSQL数据库进行备份。下一步使用TypeORM创建新的迁移脚本并更改id列的类型。在迁移脚本中创建自定义逻辑以管理当前数字ID到字符串ID的转换。这可能包括创建新列,更新值和删除旧列。
希望有帮助:)