Помилка duplicate key value violates unique constraint при реплікації даних з операційної у аналітичну базу даних
При помилці error 500 при перегляді MRов в gerrit є ймовірність, що зламалася h2 база.
Кроки з відновлення:
-
Необхідно завантажити відповідний .war файл (розархівувати за допомогою unzip або jar), у директорії WEB-INF/lib буде файл програму з відновлення для бази h2-1.3.176.jar
-
На под gerrit завантажити файл:
kubectl cp h2-1.3.176.jar gerrit-pod-name:/var/gerrit/review_site/db
-
Запустити програму з відновлення в директорії з базою даних:
java -cp h2*.jar org.h2.tools.Recover
-
Після генерації sql файлів, запустити наступні команди:
java -cp h2-1.3.176.jar org.h2.tools.RunScript -url jdbc:h2:/var/gerrit/review_site/db/account_patch_reviews_restore -script account_patch_reviews.h2.sql rm account_patch_reviews.h2.db mv account_patch_reviews_restore.h2.db account_patch_reviews.h2.db
Для видалення кешу використувуйте поду jenkins:
ssh -p 31965 gerrit gerrit flush-caches --list
ssh -p 31965 gerrit gerrit flush-caches --cache <cache-name>
or
ssh -p 31965 gerrit gerrit flush-caches --all