我正处于带有typeorm的从轨道到内斯特的迁移的过程。出于历史原因,导轨中的表名称和列名是snaked_cased
-我不想将此滋扰复制到我们的Nestjs/React侧。
我可以在Nestjs(typeorm(中创建一个称为firstName
的实体字段,但映射到我的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)
}
我终于在文档中找到了我要寻找的东西。@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;
}
如果其他任何人遇到此问题,请知道Typeorm支持命名策略。
甚至还有一个用于蛇案件命名策略的软件包