Как перейти с внутреннего postgres db на внешний postgres db в gitlab - PullRequest
0 голосов
/ 02 октября 2018

В настоящее время у нас есть все в одном док-контейнере для нашего производственного gitlab, где мы используем в комплекте postgres и redis.Так что все в одном контейнере.Мы хотим использовать внешний postgres db и отдельный контейнер для redis, а также следовать производственным стандартам.

Как я могу перейти с внутреннего postgres db на внешний postgres db?Если кто-нибудь предоставит процесс и шаги, это будет действительно полезно.Мы новички в этом процессе.Пожалуйста, дайте нам знать, если кто-нибудь знает

Спасибо всем за ваш вклад,

PRS

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

@ VonC

Привет, дайте мне знать о процессе, который я проделал ниже

В настоящее время у нас есть все в одном контейнере docker gitlab, который использует связанные postgres и redis.Чтобы следовать производственным стандартам, мы стремимся поддерживать отдельные экземпляры postgres и redis для нашего prod gitlab .. У нас уже есть данные в комплекте db .. поэтому мы взяли резервную копию текущего gitlab вместе с postgres ..it, сгенерированным .tar файлом ...Затем мы изменили gitlab.rb, чтобы он указывал на внешнюю запись gres db [та же версия]. Затем мы можем подключиться к gitlab, но не увидели никаких данных, потому что ничего не было, так как это свежая БД.Позже мы сделали восстановление, используя внешнюю базу данных postgres ... теперь мы можем увидеть все данные ??Можем ли мы сделать в этом методе?Теперь наш gitlab подключен к внешним постгресам, и я вижу все восстановленные данные.Будет ли этот процесс работать?Любые ошибки?

Чем этот процесс отличается от pgdump и import?

0 голосов
/ 02 октября 2018

Вы можете следить за статьей " Миграция GitLab с внутреннего на внешний PostgreSQL ", которая включает в себя:

  • дамп / перезагрузка базы данных, используя pg_dumpall

    sudo -u gitlab-psql /opt/gitlab/embedded/bin/pg_dumpall \
     --username=gitlab-psql --host=/var/opt/gitlab/postgresql > /var/lib/pgsql/database.sql
    sudo -u postgres psql -f /var/lib/pgsql/database.sql
    

Примечание: yuo также может использовать резервную копию базы данных, но только если внешняя версия PostgreSQL точно соответствует встроенной.

  • установка своего пароля

    sudo -u postgres psql -c "ALTER USER gitlab ENCRYPTED PASSWORD '***' VALID UNTIL 'infinity';"
    
  • и изменение конфигурации GitLab:

То есть:

# Disable the built-in Postgres
postgresql['enable'] = false
# Fill in the connection details
gitlab_rails['db_adapter'] = 'postgresql'
gitlab_rails['db_encoding'] = 'utf8'
gitlab_rails['db_host'] = '127.0.0.1'
gitlab_rails['db_port'] = 5432
gitlab_rails['db_database'] = "gitlabhq_production"
gitlab_rails['db_username'] = 'gitlab'
gitlab_rails['db_password'] = '***'
  • применить изменения тура:

    gitlab-ctl reconfigure && gitlab-ctl restart
    
...