Подключаемся к встроенной 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.

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

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

В рамках создания собственного кластера Kubernetes я поднаял кластер Mysql который работает в режиме Master-Slave и Slave-узлы соответственно работают в режиме read-only, а мастер в read-write. Соответственно мне нужен балансировщик…

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

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

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

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

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

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

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

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

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

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

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

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