无法发布到Pack-Broker:重复键值冲突

时间:2019-09-19 06:39:16

标签: pact-jvm pact-broker

当版本和标记保持不变,但在(重新)发布试用之间更改协议的内容时,我们现在面临着将协议重新发布到代理的问题

最近,我们的CICD开始使用全新的协定代理服务器,该服务器取代了旧的协定代理服务器。 旧的经纪人图片来自dius / pact-broker 新经纪人图片来自pactfoundation / pact-broker(最新)

要发布公约,我们使用“ pact:publish” maven插件命令

方案: (试验之间的projectVersion和tag的值相同)

  1. 第一次发布协议时,一切正常(返回201)
  2. 重新发布时,契约内容保持不变,请返回ok(200),因为契约中没有任何更改
  3. 重新发布但契约内容已更改时,返回错误500,表示一个或多个契约文件被经纪人拒绝。

契约代理日志上的错误显示如下:

2019-09-18 08:38:50.512340 E [9:puma 001 Representative.rb:83]根-PG :: UniqueViolation:错误:重复的键值违反了唯一约束“ 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_VALUE”) 71,16,48)返回空 2019-09-18 08:38:50.513334 E [9:puma 001 logging.rb:37]根-错误参考YouFegbNWY-Sequel :: UniqueConstraintViolation PG :: UniqueViolation:错误:重复的键值违反了唯一约束“ unq_latest_ppid_prov_conver” 详细信息:密钥(provider_id,Consumer_version_id)=(15,39)已经存在。

我希望条约代理人可以让我用相同的版本和标签替换现有的条约内容,换成新的(据我所知-在“旧的”条约经纪人中效果很好)

1 个答案:

答案 0 :(得分:1)

问题使用了错误的Postgress DB版本。