如何使用uuid为主键类型与sequeize -typescript注释?



我想使用UUID而不是Sequelize强加的默认自动递增整数。注意,我必须使用npm包sequize -typescript

这是我到目前为止的尝试。

export class SequelizeIterationModel extends Model<IterationModelAttributes> {
@IsUUID(4)
@PrimaryKey
@Column({
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
})
public id!: string;
@BelongsTo(() => SequelizeBuildModel)
public build!: SequelizeBuildModel;
@ForeignKey(() => SequelizeBuildModel)
public buildId!: number;
@Column({ type: DataTypes.JSON })
public config!: Record<string, unknown>;
}

但是我不能摆脱这个错误:invalid input syntax for integer: "6ecfcc0e-b0de-4991-bf45-e190534293c2"

我怎么才能做到呢?

这可能是完全无关紧要的,但我记得以前使用这个库时遇到了类似的问题。对我来说,最终的解决方案(或者更确切地说,是错误)是装饰师更喜欢某种顺序。

更有可能的是,我的建议是完全无用的-但是,嘿。最好的情况是,你调整一下装修的顺序,就可以了。最坏的情况是,你浪费了宝贵的杂耍时间。值得一试。

正确的顺序是:

@PrimaryKey
@Default(DataType.UUIDV4)
@Column(DataType.UUID)
public id: any;

最新更新