【发布时间】:2019-09-27 19:47:04
【问题描述】:
当版本和标签保持不变,但在(重新)发布试验之间更改了协议的内容时,我们现在面临一个问题,即向代理重新发布协议
最近,我们的 CICD 开始使用全新的协议代理服务器,取代旧的。 旧经纪人图片来自 dius/pact-broker 新代理图片来自 pactfoundation/pact-broker(最新)
要发布协议,我们使用“pact:publish” maven 插件命令
场景: (projectVersion和tag的值在试验之间是一样的)
- 第一次发布协议时,一切正常(返回 201)
- 重新发布时,虽然协议内容保持不变,但返回 ok (200),因为协议中没有任何更改
- 重新发布时,但协议内容已更改,返回错误 500,表示代理拒绝了一个或多个协议文件。
在pact broker日志上,错误显示如下:
2019-09-18 08:38:50.512340 E [9:puma 001 delegate.rb:83] root -- PG::UniqueViolation: 错误:重复键值违反唯一约束“unq_latest_ppid_prov_conver” 详细信息:键 (provider_id, consumer_version_id)=(15, 39) 已经存在。: INSERT INTO "latest_pact_publication_ids_for_consumer_versions" ("consumer_version_id", "provider_id", "pact_publication_id", "consumer_id", "pact_version_id") VALUES (39, 15, 71, 16, 48) 返回 NULL 2019-09-18 08:38:50.513334 E [9:puma 001 logging.rb:37] root - 错误参考 YouFegbNWY - Sequel::UniqueConstraintViolation PG::UniqueViolation: 错误:重复键值违反唯一约束“unq_latest_ppid_prov_conver” DETAIL: Key (provider_id, consumer_version_id)=(15, 39) 已经存在。
我希望契约经纪人允许我用新的内容替换相同版本和标签的现有契约内容(据我所知——这在“旧”契约经纪人中运行良好)
【问题讨论】:
标签: pact-jvm pact-broker