我正在使用TypeORM从Rails迁移到NestJs。由于历史原因,Rails中的表名和列名都是snaked_cased的--我不想把这个麻烦复制到我们的NestJs/React端
我可以在名为firstName的NestJS (typeorm)中创建实体字段,但映射到我的DB中名为first_name的列吗?
我的桌子
+-------------+--------------+----------------------------+
| system_users |
+-------------+--------------+----------------------------+
| id | int(11) | PRIMARY KEY AUTO_INCREMENT |
| first_name | varchar(100) | |
| last_name | varcahr(100) | |
+-------------+--------------+----------------------------+
我的用户实体类
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity({ name: 'system_users' })
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column({ length: 255 })
first_name: string; <-- I WANT THIS TO BE firstName (camelCased)
@Column({ length: 255 })
last_name: string; <-- I WANT THIS TO BE lastName (camelCased)
}
发布于 2019-05-26 14:36:47
我终于在文档中找到了我想要的东西。@Column
属性接收许多属性,其中之一是name
,它可以定义与字段相关联的列名。
我更新的实体:
@Entity({ name: 'system_users' })
export class User {
@PrimaryGeneratedColumn()
id: number;
@Column({ length: 255, name: "first_name" })
firstName: string;
@Column({ length: 255, name: "last_name" })
lastName: string;
}
发布于 2021-07-05 19:38:11
如果其他人遇到这个问题,请知道TypeORM支持naming strategies。
甚至还有一个用于snake case naming strategy的软件包
https://stackoverflow.com/questions/56311203
复制相似问题