database - 如何在 sequelize 中使用 exclude 定义 postgresql int8range
问题描述
这是表的创建查询,
CREATE TABLE IF NOT EXISTS public.my_table
(
id uuid NOT NULL,
"planType" character varying(255) COLLATE pg_catalog."default",
rate numeric,
"creditRange" int8range,
deleted timestamp with time zone,
CONSTRAINT table_pkey PRIMARY KEY (id)
)
CREATE EXTENSION btree_gist;
ALTER TABLE my_table
ADD CONSTRAINT no_overlap
EXCLUDE USING gist (planType WITH = , "creditRange" WITH &&);
续作中,
module.exports = (sequelize, DataTypes) => {
class Table extends Model {
static associate(models) {
// define association here
}
};
Table.init({
id: {
type: DataTypes.UUID,
primaryKey: true,
defaultValue: DataTypes.UUIDV4,
},
planType: DataTypes.STRING,
rate: DataTypes.DECIMAL,
creditRange: {
type: DataTypes.RANGE(DataTypes.BIGINT),
},
deleted: DataTypes.DATE,
}, {
sequelize,
modelName: 'TableModel',
tableName: 'tablename',
paranoid: true,
deletedAt: 'deleted',
});
return Table;
};
在 sequelize 迁移中添加 no_overlap 约束(EXCLUDE USING gist)的 sequelize 属性是什么。如何包含范围类型的下限和上限。