过去可以在 sequelize-typescript
的 Table 装饰器中定义 tableName
参数,如下所示:
@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) 和 sequalize (5.21.11) 的最新 npm 版本。
默认情况下,该表将被命名为Users,但使用此代码将其设置为user。
关于typescript - 如何使用 `sequelize-typescript` 定义表名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60921950/