使用 typeorm 和 Nest js 更新 postgresQl 表
我正在使用 Nest js 创建 API。当用户注册时,我使用这个实体
@Entity('user')
export class UserEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
email: string;
@Column()
password: string;
@Column({ default: false })
isActive: boolean;
}
之后,使用我创建的另一个端点,我想在此表中添加一个新字段,例如:code
const updateUser = await this.usersRepository.update(email, {
code: 'code example',
});
...但我得到 TS2345: Argument of type '{ code: any; }' 不可分配给类型为“QueryDeepPartialEntity
。
为什么我会收到此错误以及如何解决添加新字段 code
的问题?
I am using nest js to create API. When user is registered i use this entity
@Entity('user')
export class UserEntity {
@PrimaryGeneratedColumn()
id: number;
@Column()
email: string;
@Column()
password: string;
@Column({ default: false })
isActive: boolean;
}
After that using another endpoint that was created by me i want to add a new field in this table, like: code
const updateUser = await this.usersRepository.update(email, {
code: 'code example',
});
... but i get TS2345: Argument of type '{ code: any; }' is not assignable to parameter of type 'QueryDeepPartialEntity<UserEntity>'.
.
Why i get this error and how to solve the issue adding a new field code
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
this.usersRepository.update
正在尝试将{code: 'code example',}
类型转换为UserEntity
,但失败为code< /code> 不是
UserEntity
类中定义的属性。在 TypeORM 中,可以通过以下两种方式之一来修复此问题:
1。在
createConnection
中使用synchronize:true
,如下所示:并将 [1] : 添加
到
UserEntity
2. Alter command on db
在 SQL DB 上运行更改查询,并在
user
表中添加一列代码。另外,如上面 [1] 中所述,在您的 UserEntity 中添加代码列。
无论如何,您必须从修复 UserEntity 对象开始。
this.usersRepository.update
is trying to typecast{code: 'code example',}
asUserEntity
and is failing ascode
is not an attribute defined inUserEntity
class.In TypeORM this can be fixed in either of the 2 ways:
1. Using
synchronize:true
in yourcreateConnection
as in :And add [1] :
to
UserEntity
2. Alter command on db
Run an alter query on your SQL DB and add a column of code in the
user
table.Also, add code column in your UserEntity as mentioned in [1] above.
Anyways you have to start by fixing the UserEntity Object.
您可以使用
typeorm
queryRunner.addColumn
为此目的。示例:
此外,您还可以使用
queryRunner
中的许多其他功能(如下面的功能)来帮助您。hasTable
hasColumn
renameTable
renameColumn
changeColumn
You can use
typeorm
queryRunner.addColumn
for this purpose.Example:
Additionally, you can also many other functions from
queryRunner
like bellow ones which can help you.hasTable
hasColumn
renameTable
renameColumn
changeColumn