pg_statecharts
概览
| 扩展包名 | 版本 | 分类 | 许可证 | 语言 |
|---|---|---|---|---|
pg_statecharts | 0.1.0 | FEAT | MIT | SQL |
| ID | 扩展名 | Bin | Lib | Load | Create | Trust | Reloc | 模式 |
|---|---|---|---|---|---|---|---|---|
| 2695 | pg_statecharts | 否 | 否 | 否 | 是 | 否 | 否 | fsm |
| 2696 | pg_statecharts_dev | 否 | 否 | 否 | 是 | 否 | 否 | fsm |
| 相关扩展 | ltree |
|---|---|
| 下游依赖 | pg_statecharts_dev |
ltree in public
版本
| OS / PG | PG18 | PG17 | PG16 | PG15 | PG14 |
|---|---|---|---|---|---|
| el8.x86_64 | PIGSTY 0.1.0 el8.x86_64.pg18 : pg_statecharts_18 pg_statecharts_18-0.1.0-1PGSTY.el8.noarch.rpm
| PIGSTY 0.1.0 el8.x86_64.pg17 : pg_statecharts_17 pg_statecharts_17-0.1.0-1PGSTY.el8.noarch.rpm
| PIGSTY 0.1.0 el8.x86_64.pg16 : pg_statecharts_16 pg_statecharts_16-0.1.0-1PGSTY.el8.noarch.rpm
| N/A | N/A |
| el8.aarch64 | PIGSTY 0.1.0 el8.aarch64.pg18 : pg_statecharts_18 pg_statecharts_18-0.1.0-1PGSTY.el8.noarch.rpm
| PIGSTY 0.1.0 el8.aarch64.pg17 : pg_statecharts_17 pg_statecharts_17-0.1.0-1PGSTY.el8.noarch.rpm
| PIGSTY 0.1.0 el8.aarch64.pg16 : pg_statecharts_16 pg_statecharts_16-0.1.0-1PGSTY.el8.noarch.rpm
| N/A | N/A |
| el9.x86_64 | PIGSTY 0.1.0 el9.x86_64.pg18 : pg_statecharts_18 pg_statecharts_18-0.1.0-1PGSTY.el9.noarch.rpm
| PIGSTY 0.1.0 el9.x86_64.pg17 : pg_statecharts_17 pg_statecharts_17-0.1.0-1PGSTY.el9.noarch.rpm
| PIGSTY 0.1.0 el9.x86_64.pg16 : pg_statecharts_16 pg_statecharts_16-0.1.0-1PGSTY.el9.noarch.rpm
| N/A | N/A |
| el9.aarch64 | PIGSTY 0.1.0 el9.aarch64.pg18 : pg_statecharts_18 pg_statecharts_18-0.1.0-1PGSTY.el9.noarch.rpm
| PIGSTY 0.1.0 el9.aarch64.pg17 : pg_statecharts_17 pg_statecharts_17-0.1.0-1PGSTY.el9.noarch.rpm
| PIGSTY 0.1.0 el9.aarch64.pg16 : pg_statecharts_16 pg_statecharts_16-0.1.0-1PGSTY.el9.noarch.rpm
| N/A | N/A |
| el10.x86_64 | PIGSTY 0.1.0 el10.x86_64.pg18 : pg_statecharts_18 pg_statecharts_18-0.1.0-1PGSTY.el10.noarch.rpm
| PIGSTY 0.1.0 el10.x86_64.pg17 : pg_statecharts_17 pg_statecharts_17-0.1.0-1PGSTY.el10.noarch.rpm
| PIGSTY 0.1.0 el10.x86_64.pg16 : pg_statecharts_16 pg_statecharts_16-0.1.0-1PGSTY.el10.noarch.rpm
| N/A | N/A |
| el10.aarch64 | PIGSTY 0.1.0 el10.aarch64.pg18 : pg_statecharts_18 pg_statecharts_18-0.1.0-1PGSTY.el10.noarch.rpm
| PIGSTY 0.1.0 el10.aarch64.pg17 : pg_statecharts_17 pg_statecharts_17-0.1.0-1PGSTY.el10.noarch.rpm
| PIGSTY 0.1.0 el10.aarch64.pg16 : pg_statecharts_16 pg_statecharts_16-0.1.0-1PGSTY.el10.noarch.rpm
| N/A | N/A |
| d12.x86_64 | PIGSTY 0.1.0 d12.x86_64.pg18 : postgresql-18-pg-statecharts postgresql-18-pg-statecharts_0.1.0-1PGSTY~bookworm_all.deb
| PIGSTY 0.1.0 d12.x86_64.pg17 : postgresql-17-pg-statecharts postgresql-17-pg-statecharts_0.1.0-1PGSTY~bookworm_all.deb
| PIGSTY 0.1.0 d12.x86_64.pg16 : postgresql-16-pg-statecharts postgresql-16-pg-statecharts_0.1.0-1PGSTY~bookworm_all.deb
| N/A | N/A |
| d12.aarch64 | PIGSTY 0.1.0 d12.aarch64.pg18 : postgresql-18-pg-statecharts postgresql-18-pg-statecharts_0.1.0-1PGSTY~bookworm_all.deb
| PIGSTY 0.1.0 d12.aarch64.pg17 : postgresql-17-pg-statecharts postgresql-17-pg-statecharts_0.1.0-1PGSTY~bookworm_all.deb
| PIGSTY 0.1.0 d12.aarch64.pg16 : postgresql-16-pg-statecharts postgresql-16-pg-statecharts_0.1.0-1PGSTY~bookworm_all.deb
| N/A | N/A |
| d13.x86_64 | PIGSTY 0.1.0 d13.x86_64.pg18 : postgresql-18-pg-statecharts postgresql-18-pg-statecharts_0.1.0-1PGSTY~trixie_all.deb
| PIGSTY 0.1.0 d13.x86_64.pg17 : postgresql-17-pg-statecharts postgresql-17-pg-statecharts_0.1.0-1PGSTY~trixie_all.deb
| PIGSTY 0.1.0 d13.x86_64.pg16 : postgresql-16-pg-statecharts postgresql-16-pg-statecharts_0.1.0-1PGSTY~trixie_all.deb
| N/A | N/A |
| d13.aarch64 | PIGSTY 0.1.0 d13.aarch64.pg18 : postgresql-18-pg-statecharts postgresql-18-pg-statecharts_0.1.0-1PGSTY~trixie_all.deb
| PIGSTY 0.1.0 d13.aarch64.pg17 : postgresql-17-pg-statecharts postgresql-17-pg-statecharts_0.1.0-1PGSTY~trixie_all.deb
| PIGSTY 0.1.0 d13.aarch64.pg16 : postgresql-16-pg-statecharts postgresql-16-pg-statecharts_0.1.0-1PGSTY~trixie_all.deb
| N/A | N/A |
| u22.x86_64 | PIGSTY 0.1.0 u22.x86_64.pg18 : postgresql-18-pg-statecharts postgresql-18-pg-statecharts_0.1.0-1PGSTY~jammy_all.deb
| PIGSTY 0.1.0 u22.x86_64.pg17 : postgresql-17-pg-statecharts postgresql-17-pg-statecharts_0.1.0-1PGSTY~jammy_all.deb
| PIGSTY 0.1.0 u22.x86_64.pg16 : postgresql-16-pg-statecharts postgresql-16-pg-statecharts_0.1.0-1PGSTY~jammy_all.deb
| N/A | N/A |
| u22.aarch64 | PIGSTY 0.1.0 u22.aarch64.pg18 : postgresql-18-pg-statecharts postgresql-18-pg-statecharts_0.1.0-1PGSTY~jammy_all.deb
| PIGSTY 0.1.0 u22.aarch64.pg17 : postgresql-17-pg-statecharts postgresql-17-pg-statecharts_0.1.0-1PGSTY~jammy_all.deb
| PIGSTY 0.1.0 u22.aarch64.pg16 : postgresql-16-pg-statecharts postgresql-16-pg-statecharts_0.1.0-1PGSTY~jammy_all.deb
| N/A | N/A |
| u24.x86_64 | PIGSTY 0.1.0 u24.x86_64.pg18 : postgresql-18-pg-statecharts postgresql-18-pg-statecharts_0.1.0-1PGSTY~noble_all.deb
| PIGSTY 0.1.0 u24.x86_64.pg17 : postgresql-17-pg-statecharts postgresql-17-pg-statecharts_0.1.0-1PGSTY~noble_all.deb
| PIGSTY 0.1.0 u24.x86_64.pg16 : postgresql-16-pg-statecharts postgresql-16-pg-statecharts_0.1.0-1PGSTY~noble_all.deb
| N/A | N/A |
| u24.aarch64 | PIGSTY 0.1.0 u24.aarch64.pg18 : postgresql-18-pg-statecharts postgresql-18-pg-statecharts_0.1.0-1PGSTY~noble_all.deb
| PIGSTY 0.1.0 u24.aarch64.pg17 : postgresql-17-pg-statecharts postgresql-17-pg-statecharts_0.1.0-1PGSTY~noble_all.deb
| PIGSTY 0.1.0 u24.aarch64.pg16 : postgresql-16-pg-statecharts postgresql-16-pg-statecharts_0.1.0-1PGSTY~noble_all.deb
| N/A | N/A |
| u26.x86_64 | PIGSTY 0.1.0 u26.x86_64.pg18 : postgresql-18-pg-statecharts postgresql-18-pg-statecharts_0.1.0-1PGSTY~resolute_all.deb
| PIGSTY 0.1.0 u26.x86_64.pg17 : postgresql-17-pg-statecharts postgresql-17-pg-statecharts_0.1.0-1PGSTY~resolute_all.deb
| PIGSTY 0.1.0 u26.x86_64.pg16 : postgresql-16-pg-statecharts postgresql-16-pg-statecharts_0.1.0-1PGSTY~resolute_all.deb
| N/A | N/A |
| u26.aarch64 | PIGSTY 0.1.0 u26.aarch64.pg18 : postgresql-18-pg-statecharts postgresql-18-pg-statecharts_0.1.0-1PGSTY~resolute_all.deb
| PIGSTY 0.1.0 u26.aarch64.pg17 : postgresql-17-pg-statecharts postgresql-17-pg-statecharts_0.1.0-1PGSTY~resolute_all.deb
| PIGSTY 0.1.0 u26.aarch64.pg16 : postgresql-16-pg-statecharts postgresql-16-pg-statecharts_0.1.0-1PGSTY~resolute_all.deb
| N/A | N/A |
构建
您可以使用 pig build 命令构建 pg_statecharts 扩展的 RPM / DEB 包:
安装
您可以直接安装 pg_statecharts 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:
使用 pig 或者是 apt/yum/dnf 安装扩展:
创建扩展:
用法
来源:
pg_statecharts 0.1.0 在 PostgreSQL 事务内执行层次状态机及其事件。本版本为纯 SQL 实现,测试覆盖 PostgreSQL 16–18,无需预加载或重启。
核心流程
将 ltree 安装在 public 模式,再使用具备所需对象创建权限的角色安装扩展:
启动机器前,应先通过 SQL 迁移或开发工具扩展部署状态图定义。对于已经部署且名为 order 的状态图,以下操作启动最新版本并返回状态机记录:
向 fsm.state_machine_event 插入分片、状态机标识、事件名称和 JSON 数据即可提交事件。触发器会在插入事务内处理事件,并运行进入与退出回调。调用者必须具备对应表和函数的权限;状态图回调属于应用代码,需要单独审查。
目录与版本
定义与运行中的状态机位于 fsm 模式。fsm.to_semver 解析数字版本,fsm.semver_text 将其格式化;版本以整数数组存储,原生排序保持数值顺序。需要比较版本先后时,不应按格式化后的文本排序。
备份与旧版迁移
本次核对的 0.1.0 源码将状态表与序列登记为数据库转储对象。事件收件箱有意排除,以免恢复时重复执行回调。0.0.0 版本产生的备份不含状态机数据;升级后应重新备份并验证恢复。
较早安装的 0.1.0 可能尚未登记转储对象,因此应检查实际目录,不能只看版本字符串。不要为了刷新登记而删除含有数据的扩展。旧 Rust 或 Sqitch 部署的迁移需要超级用户操作,转换期间还依赖旧 semver 扩展;应遵循迁移指南并在恢复副本上演练。上游已不再单独测试旧 0.0.0 迁移路径。
这个页面对您有帮助吗?
感谢反馈,我们会据此改进这篇文档。
哪里没有解决?(可选)