当版本和标签保持不变时,当将协议重新发布到代理时,我们现在面临一个问题,但协议的内容在(重新(发布试验之间发生了变化
最近,我们的CICD开始使用一个全新的协议代理服务器,它取代了旧的服务器。 旧经纪人形象来自dius/pact-broker。 新的经纪人形象来自pactfoundation/pact-broker(最新(
要发布协议,我们使用 "pact:publish" maven 插件命令
场景: (项目版本和标签的值在两次试验之间是相同的(
- 第一次发布协议时,一切正常(返回 201(
- 重新发布时,虽然协议内容保持不变,但返回 ok (200(,因为协议中没有任何更改
- 重新发布时,但协议内容已更改,返回错误 500,表示一个或多个协议文件被代理拒绝。
在 PACT 代理日志中,错误如下所示:
2019-09-18 08:38:50.512340 E [9:puma 001 delegate.rb:83] 根 -- PG::唯一违规:错误:重复键值违反唯一约束"unq_latest_ppid_prov_conver" 详细信息:键 (provider_id, consumer_version_id(=(15, 39( 已存在。: 插入到"latest_pact_publication_ids_for_consumer_versions"("consumer_version_id"、"provider_id"、"pact_publication_id"、"consumer_id"、"pact_version_id"(值(39、15、71、16、48(中,返回空 2019-09-18 08:38:50.513334 E [9:puma 001 logging.rb:37] 根 -- 错误引用 YouFegbNWY - 续集::唯一约束违规 PG::唯一违规:错误:重复键值违反唯一约束"unq_latest_ppid_prov_conver" 详细信息:密钥(provider_id,consumer_version_id(=(15,39(已存在。
我希望协议经纪人允许我用新的协议内容替换相同的版本和标签,现有的协议内容(据我所知 - 在"旧"协议经纪人中运行良好(
问题是错误的后退数据库版本。