typescript - 如何使用 `sequelize-typescript` 定义表名?
问题描述
过去可以tableName
在 Table 装饰器中定义参数,sequelize-typescript
如下所示:
@Table({
tableName: 'my-custom-tablename'
})
export class Tenants extends Model<Tenants> {
@IsUUID(4)
@Default(uuid())
@PrimaryKey
@Column
uuid!: string;
@CreatedAt
@Column
created_at!: Date;
@UpdatedAt
@Column
updated_at!: Date;
}
使用最新版本似乎无法做到这一点,只有两个选项可用:
modelName
和version
,所以现在,TableName 自动映射到 ModelName (className)
如何传递与模型关联的真实表名?
解决方案
@Table({
tableName: 'user'
})
export class User extends Model<User> {
@Column
firstName!: string;
@CreatedAt
@Column
createdAt!: Date;
@UpdatedAt
@Column
updatedAt!: Date;
}
这对我来说适用于 sequelize-typescript (1.1.0) 和 sequelize (5.21.11) 的最新 npm 版本。
默认情况下,该表将命名为Users,但使用此代码将其设置为user。
推荐阅读
- javascript - 如何使用 contenteditable 防止删除内部跨度?
- swiftui - WatchOS,SwiftUI:如何以“视图”为正文发送本地通知
- python-3.x - 使用 Matplotlib 绘制二进制 Numpy 数组的边界
- c# - 该值不是“System.Int32”类型,不能在此通用集合中使用
- loops - 如何在 ansible 和导出变量的循环内创建循环?
- ubuntu - 不同进程的几个分段错误
- node.js - AWS Redis 读取器端点和 ioredis
- swift - 在基本计数器类上使用 DispatchGroup 的好处
- javascript - 如何在li css中分离图像和文本
- python - Flask mp4文件未使用文件路径显示在视频标签中