跳转到主要内容

pg_statecharts_dev

pg_statecharts 的 SCXML 导入与迁移开发工具

概览

扩展包名版本分类许可证语言
pg_statecharts0.1.0FEATMITSQL
ID扩展名BinLibLoadCreateTrustReloc模式
2695pg_statecharts否否否是否否fsm
2696pg_statecharts_dev否否否是否否fsm
相关扩展pg_statecharts

Development tooling; server file privileges

版本

类型仓库版本PG 大版本包名依赖
EXTPIGSTY0.1.01817161514pg_statechartspg_statecharts
RPMPIGSTY0.1.01817161514pg_statecharts_dev_$vpg_statecharts_$v
DEBPIGSTY0.1.01817161514postgresql-$v-pg-statecharts-devpostgresql-$v-pg-statecharts
OS / PGPG18PG17PG16PG15PG14
el8.x86_64PIGSTY 0.1.0PIGSTY 0.1.0PIGSTY 0.1.0N/AN/A
el8.aarch64PIGSTY 0.1.0PIGSTY 0.1.0PIGSTY 0.1.0N/AN/A
el9.x86_64PIGSTY 0.1.0PIGSTY 0.1.0PIGSTY 0.1.0N/AN/A
el9.aarch64PIGSTY 0.1.0PIGSTY 0.1.0PIGSTY 0.1.0N/AN/A
el10.x86_64PIGSTY 0.1.0PIGSTY 0.1.0PIGSTY 0.1.0N/AN/A
el10.aarch64PIGSTY 0.1.0PIGSTY 0.1.0PIGSTY 0.1.0N/AN/A
d12.x86_64PIGSTY 0.1.0PIGSTY 0.1.0PIGSTY 0.1.0N/AN/A
d12.aarch64PIGSTY 0.1.0PIGSTY 0.1.0PIGSTY 0.1.0N/AN/A
d13.x86_64PIGSTY 0.1.0PIGSTY 0.1.0PIGSTY 0.1.0N/AN/A
d13.aarch64PIGSTY 0.1.0PIGSTY 0.1.0PIGSTY 0.1.0N/AN/A
u22.x86_64PIGSTY 0.1.0PIGSTY 0.1.0PIGSTY 0.1.0N/AN/A
u22.aarch64PIGSTY 0.1.0PIGSTY 0.1.0PIGSTY 0.1.0N/AN/A
u24.x86_64PIGSTY 0.1.0PIGSTY 0.1.0PIGSTY 0.1.0N/AN/A
u24.aarch64PIGSTY 0.1.0PIGSTY 0.1.0PIGSTY 0.1.0N/AN/A
u26.x86_64PIGSTY 0.1.0PIGSTY 0.1.0PIGSTY 0.1.0N/AN/A
u26.aarch64PIGSTY 0.1.0PIGSTY 0.1.0PIGSTY 0.1.0N/AN/A

构建

您可以使用 pig build 命令构建 pg_statecharts 扩展的 RPM / DEB 包:

pig build pkg pg_statecharts         # 构建 RPM / DEB 包

安装

您可以直接安装 pg_statecharts 扩展包的预置二进制包,首先确保 PGDG 和 PIGSTY 仓库已经添加并启用:

pig repo add pgsql -u          # 添加仓库并更新缓存

使用 pig 或者是 apt/yum/dnf 安装扩展:

安装
pig install pg_statecharts;          # 当前活跃 PG 版本安装
pig
pig ext install -y pg_statecharts -v 18  # PG 18
pig ext install -y pg_statecharts -v 17  # PG 17
pig ext install -y pg_statecharts -v 16  # PG 16
dnf
dnf install -y pg_statecharts_dev_18       # PG 18
dnf install -y pg_statecharts_dev_17       # PG 17
dnf install -y pg_statecharts_dev_16       # PG 16
apt
apt install -y postgresql-18-pg-statecharts-dev   # PG 18
apt install -y postgresql-17-pg-statecharts-dev   # PG 17
apt install -y postgresql-16-pg-statecharts-dev   # PG 16

创建扩展:

CREATE EXTENSION pg_statecharts_dev CASCADE;  -- 依赖: pg_statecharts

用法

来源:

pg_statecharts_dev 0.1.0 是 pg_statecharts 的开发工具扩展,用于导入 SCXML 定义与生成 Sqitch 迁移。生产状态机运行时不需要这套服务器文件访问工具。

核心流程

安装运行时及其依赖后,启用开发工具:

CREATE EXTENSION pg_statecharts_dev;
SELECT * FROM fsm.import_scxml_files(
  source_path => '/repo/statecharts',
  recursive => false,
  on_conflict_do_nothing => false
);

源目录位于数据库主机上。状态图回调必须已经存在,且签名符合要求。解析或验证失败会回滚导入事务,不会只接收状态图的一部分。

生成迁移

SELECT fsm.gen_statechart_sqitch_migrations(
  source_path => '/repo/statecharts',
  sqitch_plan_file_path => '/repo/sqitch/sqitch.plan',
  recursive => false
);

生成前应建立目标目录,并保证数据库操作系统用户可以访问。生成器写入部署、回退与验证脚本,更新计划文件,并可能覆盖已有的状态图生成文件。作为应用迁移使用前,必须检查这些改动。

权限与边界

读取服务器文件需要 pg_read_server_files,写入需要 pg_write_server_files。这些是广泛权限,不是仅限于所提供路径的沙箱。应将扩展及相关角色限制在受控的开发数据库中。它共用 fsm 模式,为纯 SQL 实现,无需预加载;文档测试覆盖 PostgreSQL 16–18。

生成迁移时使用运行时当前的语义版本辅助函数。旧迁移若仍转换到已移除的 semver 类型,应按上游迁移指南修订;重新生成全部历史状态图可能引入回调依赖顺序错误。生产端部署审查后的 SQL 即可,无需安装本开发工具。

这个页面对您有帮助吗?

表格阅读