jsonschema
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
jsonschema | 0.1.9 | FEAT | MIT | Rust |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 2760 | jsonschema | 否 | 是 | 否 | 是 | 否 | 是 | - |
| 相关扩展 | pgbson pgjq jsquery pg_jsonschema pg_projection jsonb_plperl documentdb jsonb_plperlu jsonb_plpython3u mongo_fdw |
|---|
Distinct from Supabase pg_jsonschema.
版本
| 类型 | 仓库 | 版本 | PG 大版本 | 包名 | 依赖 |
|---|---|---|---|---|---|
| EXT | PIGSTY | 0.1.9 | 1817161514 | jsonschema | - |
| RPM | PIGSTY | 0.1.9 | 1817161514 | jsonschema_$v | - |
| DEB | PIGSTY | 0.1.9 | 1817161514 | postgresql-$v-jsonschema | - |
构建
您可以使用 pig build 命令构建 jsonschema 扩展的 RPM / DEB 包:
安装
您可以直接安装 jsonschema 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
使用 pig 或者是 apt/yum/dnf 安装扩展:
创建扩展:
用法
来源:
jsonschema 在 PostgreSQL 内根据 JSON Schema 校验 JSON 和 JSONB 值。它是 theory/pg-jsonschema-boon 扩展,不同于 Supabase pg_jsonschema,但提供了名为 json_matches_schema() 和 jsonb_matches_schema() 的兼容包装函数。
该扩展通过 Rust boon 校验器支持 JSON Schema draft 4、draft 6、draft 7、draft 2019-09 和 draft 2020-12。运行时除了 PostgreSQL 之外没有其他依赖。
最新复核说明:上游 main 当前与 v0.1.9 tag 指向同一提交,因此这次刷新未发现新的用户可见变化,只替换了过期的 generated-SQL 来源链接。
校验 Schema 与文档
jsonschema_is_valid(schema) 返回 schema 本身是否能够编译,并能按所选 draft 通过校验。jsonschema_validates(data, schema) 返回 JSON/JSONB 值是否满足该 schema。
CHECK 约束
当数据库需要在写入时拒绝格式错误的 JSON 文档时,可使用约束。
组合式 Schema
带 id 的重载允许多个 schema 通过 $id 相互引用,适合组件化的 JSON Schema 定义。
兼容函数
这些包装函数沿用常见的 pg_jsonschema 参数顺序:schema 在前,instance 在后。
Draft 版本选择与注意事项
如果 schema 省略 $schema,jsonschema.default_draft 会控制默认 draft。支持值为 V4、V6、V7、V2019 和 V2020。
- 如果任一参数为 NULL,
jsonschema_validates(data, schema)返回 NULL。 - 无效或无法编译的 schema 可能在校验调用中抛出错误;文档校验失败会返回
false,并在INFO级别记录详情。 jsonschema_is_valid(id, VARIADIC schemas)和jsonschema_validates(data, id, VARIADIC schemas)需要匹配的$id值,才能可靠解析组合式 schema。