首页 > 解决方案 > 如何在 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 属性是什么。如何包含范围类型的下限和上限。

标签: databasepostgresqlormsequelize.jssequelize-cli

解决方案


推荐阅读