@alma-harness/postgres-excution (英语)
PostgreSQL操作线程(指:持久-操作线程). 这个添加剂
软件包取决于匹配 core, (中文(简体) ), execution 财务报告和审定财务报表 postgres 释放; 它
重用共享范围交易,角色和语句超时帮助.
migrateOperationTreeStore(pool) 安装当前执行形状帮助器,并
alma_operation_roots编号 :alma_operation_calls。 。 。 . PostgresOperationTreeStore(pool, ScopedStoreOptions?) 执行中性 OperationTreeStore 从被执行.
默认交易 SET LOCAL ROLE alma 应用并绑定 org/ uid 带有30s 超时.
一个明确的无效角色保留了现有的主机选择退出角色切换.
移徙需要与邮资相同的特权移徙联系;运行时间
连接通过 GrantRole 使用有限的登录成员. 迁移升级a
数据库最后由前两个小版本中的一个迁移,并重运行
它们不会改变什么(规格:升级-窗口).
索赔根一次;只有第一个索赔人得到不透明的栅栏。 储备稳定 主/正/去/去/取出分档后再发出. 根/子范围,会话, 政策、上限、敏感性和最后期限必须商定。 父母联系在 树根。 SQL 锁定序列化正则; 触发验证根录入和更新 从解剖学上来说,会员人数是多少。 损失的确认按范围解决 或平等保留重放, 从来没有一个新的根执行权限.
INSERT 独有性失败允许在回滚和连接后读取
释放。 只有一个完全相同的正常化的具有约束力的回报 existing,没有
栅栏;关闭或过期的赢家没有重新获得权力。 读取失败,
其他 SQL 错误和COMMIT 不确定性仍然是错误。 映射出的错误保留
原始 PostgreSQL 图像 cause 非数字的可信诊断; 不序列化
导致客户端输出或常规日志( spec: option- tree- claim- read back) .
过期的根无法保留, 甚至在之前 reconcileExpired(scope) 标记为
调和。 被捆绑的扫荡会跳过被锁起的根. close 停止录取;
它并不意味着会计核算或完成交付. listCalls 原文为:,
默认50/max100,每个根最多有512个成员. 读书人永远不回篱笆
符号 。 元数据是免内容并保留;不存在删除或收购API.
统治下的谈话和继位者在退位前就对这些保留具有约束力. 线性本身不产生可计费成本行.
范围围栏 (规格:范围-围栏). 树、会话和批次迁移增加
邮包的栅栏触发器 alma_operation_roots, (中文(简体) ),
alma_operation_admissions 财务报告和审定财务报表 alma_batch_submissions新的栅栏式瞄准镜
根、 接受或提交被拒绝 ScopeFencedError,由任意
编剧. 围栏还授权释放不确定的承认其
范围 : releaseFenced(scope, { limit }) 作为应用程序发布
作用,以栅栏的行动id作为它们的解析度(谱系:范围-时代). A 类
没有栅栏的瞄准镜立即释放 releaseFailed(scope, rootKey), (中文(简体) ),
作为任何角色 failedReleaseId(rootKey) (规格:倒转-释放)
运算符 resolve;或者,一旦不确定的录取期限为15个
过几分钟数据库钟,任何人通过 releaseExpired(scope, { limit }) 与从它的密钥中衍生的id( spec: 过期- turn- release). 这个
触发重算从密钥中导出 id;和 a
记录事件录入: releaseExpiredEvents(scope, sessionId) 释放,
作为应用角色,在 conversation-event-v1: 名称空间
在数据库时钟上超过最后期限, 没有操作根, 标记
一个活跃的不确定的先( spec: 栅栏- event- appended). 入院的触发器检查了所有情况 并检查了
alma_operation_roots 在事件密钥下拒绝任何根, 因此无法写入
以这种方式释放出一个转弯( 规格: 对话- 事件) 。 重运行 migrateOperationSessionStore,则
再次验证目录 .
基础财务会计
migrateOperationAccountingStore 构成行系和受管成本迁移.
PostgresOperationAccountingStore 以登记方式读取实际受管制收据
调用身份并只写 alma_operation_financial_calls 财务报告和审定财务报表
alma_operation_warnings根锁将会计科目和总额序列化;
SQL 核实金融协会和准确的决定元数据,并插入
在解剖学上警告证据。 源成本行/计数从未增加.
源结算和汇总是单独的交易. 损失合计 确认重放存储的收件; 缺失的集合可以修复 包括关闭/期满后。 保留的范围 源控行; 普通成本保留已经保留了这些行. 简要清点不能证明完成或外部交付。 命令外根数 原始会话/天金额; 根警告是不可改变的证据, 不是通知发送框(规格:root-financial-recepts).
migrateOperationSessionStore(pool) 安装可扩展的会话锁行和不可移动
入会. PostgresOperationSessionStore (a) 将索赔进行连锁处理;
a 部分独特指数只允许每个范围会议有一个未完成的录取.
最后期限标志着不确定性,但不允许接管。 完成需要原始内容
过期前的栅栏;其回放保持稳定。 运算符解析器有单独的
收件后无法作为所有者完成重放 .
正常操作假设 alma_app; 明确 resolve 假设
配置 operatorRole (默认) alma_retention需要加入
FORCE RLS仍在活动. 仅将成员资格授予受信任的和解者
主持人。 迁移接受匹配 role编号 :operatorRole。不要引用决议
从跑者、扫荡者或超时处理器;跑者自己释放的是
releaseFailed,在应用角色下。 在创建根前承认; 崩溃
在这些交易之间,会话一直持续到到期发行。 部署
将读者和角色在收养前相匹配; 录取本身不包括自动保留。 参见受管会-会议-接纳谱.
摘要可能没有父目录(序文摘要). 拓宽的母公司FK和 低水平检查仍然存在.
通过录入输入和
无效的根 request 栏。 新的 SQL 检查验证已关闭的受限元数据;
root UPDATE 触发器保护原始绑定字段,同时允许现有
状况/计算变化。 无描述符的根仍然有效 。 没有捏造
修改,内容行或收费被创建( spec: conversation-root-binding).
批量提交文件的所有权
migrateBatchSubmissionStore 添加 alma_batch_submissions 财务报告和审定财务报表 alma_batch_items· ;
PostgresBatchSubmissionStore 执行执行包的中性合同.
父插入通过 SQL 触发器在
同一个交易。 行动范围/呼叫/定居的独特性和不可改变的JSON
约束防止重新参与。 FORCE RLS 覆盖 org 和 uid; 使用普通
有限登录 alma app 成员和语句超时设置 。 运行时间
无法删除赠款或所有权重设 API.
SQL 守护者拒绝过期的新发送、倒转和接受 a 先前的发送标记。 时钟在行锁后被采样. 迟到的手柄留下 (b) 接收不是批量完成、会计或 允许再次提交。 范围从不暴露原始的围栏标志. SQL的准入与现有的有栅栏的商店一样,仍然是可信赖的东道主能力.
not_submitted (规格:批次未提交) prepared永远
带有发送标记,接受或手柄,没有UPDATE离开. 这个
已版本 alma_batch_transition_v2() 拥有触发器。 没有栅栏,只允许两个过渡,只有储存的最后期限
通过 clock_timestamp() 行锁后 : prepared 改为 not_submitted 财务报告和审定财务报表
dispatching 改为 reconciliation_required。 。 。 . reconcileExpired 跳过另一行
交易持有.
一项索赔INSERT独有性失败在交易清理后被读回一次,
在新的范围交易中。 只有一个完全一样的 普通的表
返回时 existing;没有取回围栏,而INSERT再也没有再试.
缺少或更改的绑定仍然有冲突;不相关的错误和丢失的COMMIT
识别无法启用此路径( scpect- claim- read back) .
Mapped 批量冲突/状态错误保留了无法假定的 SQL 错误
cause,包括PostgreSQL提供的任何约束/细节. 这些诊断
仅供信任的检查使用:它们可能包含范围识别符。 别
将原因序列化为客户端响应或自动登录全部错误.
在构建适配器前安装添加剂迁移. 重运行 目前的移徙保留人口记录。 投入 正常化封顶显示在 2 MiB; SQL 额外将 JSONB 文本限制在 4 MiB 因为它的数值/白空间编码不同。 所有递归元数据形状 关闭;内容必须使用单独的结果存储。 没有自动保留, 包括供应商的准入、收集、结算或例行整合.
migrateBatchUsageStore 组成批次和管理住区迁移和
添加 alma_batch_usage。 。 。 . PostgresBatchUsageStore 使用正常范围限制
登录和超时选项。 SQL 将观测结果绑入接受的手柄/成员,
核查封闭的证据,并只允许与现有
匹配管理成本。 FK保护观测和源
收到保留;应用不会收到删除赠款. 读者验证已保存完毕
定价和收款的一致性,在腐败元数据上失败.
接收领养先将观察锁上,然后将其合并的收据读入 新的 SQL 声明: 必须在相互竞争的收养之前进行发言 不将新关联与旧关联数据相混合 。 丢失附件、结算和 收养确认重新显示同样的身份。 适配器不会增加 支付或援引提供者。 在新阅读器前安装添加剂迁移; 人口密集的反复升级保存记录。 参见执行的批量使用日记 合同; 内容、有效电子格式、收集完成和交付仍然分开. SQL协会警卫也计算出被冻结的批发价格,包括最高价格 适用的快带、缓存回落/一小时费率和供应商搜索费. 对等测试将其金额与核心定价进行比较;匹配的身份/使用收据 金额不同,不能使观察无法读取或解决.
migrateBatchAccountingStore 添加 alma_batch_financial_items 财务报告和审定财务报表
alma_batch_warnings 在批量使用迁移之前.
PostgresBatchAccountingStore 使用相同的有限范围连接选项.
批次行锁将会计科目和包括的总数序列化
警告插入以解剖方式进行。 独有的范围项目密钥防止了两种观察
从贡献两次。 SQL 检查通过的意见、来源量、,
确定明确的立场和确切的决定/警告。 应用补助金为SELECT/INSERT
仅;范围为FKs的保护源观测. 支持流行升级回放.
适配器从不写货币计数器或成本行,也不批准执行
或频道传输权限.
依赖于 Alma 对象的 SQL 验证器和触发器将其引用器路径钉入
pg_catalog, installation_schema, pg_temp重新运行
当前在备份前的迁移;旧的启动 SQL 可以替换函数设置 .
这保留了pg restore期间的CHECK评价,并可以防止呼叫者路径阴影.
嵌入式工具选择 execution.controls.toolChoice 仍然是每个不可更改的呼叫或批发项目的一部分。 运行两个 migrateOperationTreeStore 财务报告和审定财务报表 migrateBatchSubmissionStore 在撰写选择之前。 重新运行两种迁移,无论是哪种顺序,都保留现有记录和限制身份. 更改的选择会与原调用槽或批量显示相冲突,不授权再发送.
会话标签
migrateSessionLabelStore(pool) 添加 alma_session_labels· ; PostgresSessionLabelStore
执行核心 SessionLabelStore 标准范围
选项(规格:会话-标签)。 CHECK 验证标签形状和
可用/已过期状态; 触发会冻结行身份和创建, 只允许
available → erased 并制作墓碑 空出一行的线
会话标识是范围封条 . alma_app 获得SELECT/INSERT/UPDATE,永不减值.
每篇作文都要用一副全镜咨询锁,所以放出并去除序列. 插入触发器采用相同的锁, 拒绝密封范围内的标签, 并拒绝外跑 read committed因为一个更古老的快照 将错过一个密封 等待.