не удается опубликовать в Pack-Broker: нарушение значения двойного ключа - PullRequest
1 голос
/ 19 сентября 2019

Теперь мы сталкиваемся с проблемой повторной публикации пактов посреднику, когда версия и тег остаются прежними, но содержимое пакта изменяется между (повторными) публикациями испытаний

Недавно наш CICD началиспользуя совершенно новый сервер Pact Broker, который заменяет старый.Изображение старого брокера взято из dius / pact-broker Изображение нового брокера взято из pactfoundation / pact-broker (последняя версия)

Для публикации пактов мы используем команду плагина "pact: publish" maven

Сценарий: (Значения projectVersion и тега одинаковы между испытаниями)

  1. Когда публикуете пакт в первый раз, все работает нормально (возвращаем 201)
  2. Когда повторнопубликация, пока содержание пакта остается прежним, возвращает ok (200), так как в пакте ничего не изменилось
  3. При повторной публикации, но содержимое пакта изменилось, возвращается ошибка 500, говорит один или несколько пактовфайлы были отклонены посредником.

в журнале посредника pact, ошибка отображается следующим образом:

2019-09-18 08: 38: 50.512340 E [9: puma 001Delegate.rb: 83] root - PG :: UniqueViolation: ОШИБКА: значение дублированного ключа нарушает ограничение уникальности "unq_latest_ppid_prov_conver" DETAIL: Ключ (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 ") ЗНАЧЕНИЯ (39, 15, 71, 16, 48) ВОЗВРАЩАЕМЫЙ НУЛЬ 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уже существует.

Я ожидаю, что pact broker позволит мне заменить для той же версии и тега существующее содержимое pact новым (насколько я могу сказать - это работало нормально в"старый" пакт брокер)

1 Ответ

1 голос
/ 20 сентября 2019

Ошибка была связана с неверной версией Postgress DB.

...