You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IHP Haskell Framework能否使用PostgreSQL int8range及已有Schema?

在IHP中使用PostgreSQL int8range类型与导入已有Schema实现双时态模型

关于PostgreSQL int8range类型的支持

  • IHP原生支持PostgreSQL的范围类型(包括int8range),编辑器无法解析通常是因为缺少手动类型映射。
  • 在对应Model文件中添加Haskell类型映射:
    import Database.PostgreSQL.Simple.Range (Range)
    import Data.Int (Int64)
    
    type Int8Range = Range Int64
    
  • 在Model字段定义中使用该类型:
    instance Table YourTable where
        tableName = "your_table"
        primaryKey = #id
        fields = [
            #id,
            #validPeriod :: Field Int8Range
            -- 其他字段...
        ]
    
  • 确认项目依赖包含postgresql-simple(IHP默认已集成),若缺失可在package.yaml中添加对应依赖。

导入已有PostgreSQL Schema到IHP

  • IHP支持导入现有Schema,操作步骤:
    1. 确保Config/Config.hs中数据库连接配置正确。
    2. 执行命令生成对应Model文件:
      ./dev/db-migrate generate
      
      该命令会扫描数据库表结构,自动生成Model类型与字段定义,包含int8range这类特殊类型。
    3. 若自动生成的Model未正确识别int8range,可手动添加前述类型映射。
    4. 实现双时态模型时,可在现有Schema中定义valid_time、transaction_time两个range字段,导入后在IHP中使用Range类型结合PostgreSQL范围操作符(如@>、<@)完成时态查询。

内容的提问来源于stack exchange,提问作者Michael Fliegner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 21:09:59