Подключаемся к встроенной Postgresql базе GitLab

Оцените статью

При обновлении GitLab столкнулся с ошибкой:

main: == [advisory_lock_connection] object_id: 53240, pg_backend_pid: 12591
main: == 20240617135002 ReAddTagsNameUniqueIndex: migrating =========================
main: -- indexes(:tags)
main:    -> 0.0227s
main: -- current_schema(nil)
main:    -> 0.0005s
main: -- transaction_open?(nil)
main:    -> 0.0000s
main: -- view_exists?(:postgres_partitions)
main:    -> 0.0015s
main: -- index_exists?(:tags, :name, {:unique=>true, :name=>"index_tags_on_name", :algorithm=>:concurrently})
main:    -> 0.0036s
main: -- execute("SET statement_timeout TO 0")
main:    -> 0.0004s
main: -- add_index(:tags, :name, {:unique=>true, :name=>"index_tags_on_name", :algorithm=>:concurrently})
main: -- execute("RESET statement_timeout")
main:    -> 0.0004s
main: == [advisory_lock_connection] object_id: 53240, pg_backend_pid: 12591
rake aborted!

При выполнении команды:

# gitlab-rake db:migrate -v

Стало немного понятнее, где ошибка:

StandardError: An error has occurred, all later migrations canceled:

PG::DuplicateTable: ERROR:  relation "index_tags_on_name" already exists

Соответственно, придется подключаться к базе и править эти дубликаты руками. Можно подключиться к базе данных из консоли при помощи команды:

# sudo -u gitlab-psql /opt/gitlab/embedded/bin/psql -h /var/opt/gitlab/postgresql -d gitlabhq_production

Но хотелось бы на будущее настроить удаленный доступ при помощи DbBeaver, чем собственно мы сейчас и займемся. И первым делом создадим супер-пользователя и назначим ему пароль (подключившись через консоль конечно).

CREATE ROLE chernousov WITH LOGIN SUPERUSER PASSWORD 'xSecretPasswordx';

Если вы посмотрите, настройки встроенного Postgresql-сервера, то сможете увидеть, что доступ восможен только локально через сокет и для внешненго доступа нам потребуется произвести несколько правок.

В каталоге /var/opt/gitlab/postgresql/data изменяем файлы:

  • postgresql.conf — listen_addresses = ‘*’
  • pg_hba.conf — host all all 0.0.0.0/0 md5

Перезапускаем встроенный Postgresql командой:

# gitlab-ctl restart postgresql

Подключаемся через DbBeaver.

Похожие записи

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Запихать Mysql в Kubernetes оказалось не очень хорошей идеей и я решил основательно пересмотреть инфраструктуру своего pet-проекта и за основу будет принят кластер из трех серверов. На каждом узле кластера…

Полная настройка Nextcloud: кэширование, интеграция с FreeIPA, S3-хранилище и оптимизация

Продолжаем переезжать на Nextcloud и сегодня мы его донастроим до полноценного использования. Настроим интеграцию с FreeIPA, подключим S3-хранилище от Cloud.ru (а также рассмотрим альтернативу — Adman.com), добавим кэширование, планировщик задач…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Как проверить работу камеры в Ubuntu Linux: диагностика USB и встроенных веб-камер

Как проверить работу камеры в Ubuntu Linux: диагностика USB и встроенных веб-камер

Полное руководство по установке Docker, Docker Compose, kubectl, Helm и k9s в Linux

Полное руководство по установке Docker, Docker Compose, kubectl, Helm и k9s в Linux

Настройка маршрутизации через VipNet: пошаговое руководство для RedOS

Настройка маршрутизации через VipNet: пошаговое руководство для RedOS