Gitlab Backup - MySQL Datenbank Dump durch PostgreSQL austauschen

December 04, 2016

Reading time ~1 PLUGIN_READINGTIME.MINUTE

Wer bei Gitlab das Datenbanksystem vom MySQL auf PostgreSQL ändern will muss nach dem Backup den Datenbank-Dump entsprechend austauschen - sonst funktioniert der Import nicht.

Backup erstellen

Mit der Gitlab CE (Source+MySQL) ein Backup erstellen

sudo service gitlab stop
sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production

Datenbankdump

Einen neuen, PostgreSQL-kompatiblen Datenbank-Dump erstellen

sudo -u git -H mkdir -p /home/git/gitlab/tmp/backups/postgresql
sudo -u git -H mv /home/git/gitlab/tmp/backups/1480767702_gitlab_backup.tar /home/git/gitlab/tmp/backups/postgresql/
cd /home/git/gitlab/tmp/backups/postgresql
sudo -u git -H mysqldump --compatible=postgresql --default-character-set=utf8 -r gitlabhq_production.mysql -u root gitlabhq_production -p

Datenbankkonverter installieren

Installieren des Gitlab-MySQL-PostgreSQL Konverters

sudo apt install ed
sudo -u git -H git clone https://github.com/gitlabhq/mysql-postgresql-converter.git -b gitlab

Dump umwandeln

sudo -u git -H mkdir db
sudo -u git -H python mysql-postgresql-converter/db_converter.py gitlabhq_production.mysql db/database.sql
sudo -u git -H ed -s db/database.sql < mysql-postgresql-converter/move_drop_indexes.ed

Dump austauschen

sudo -u git -H gzip db/database.sql
sudo -u git -H tar rf 1480767702_gitlab_backup.tar db/database.sql.gz

In der Backup-Datei wurde nun der MySQL-kompatible Datenbankdump durch einen PostgreSQL-kompatiblen ersetzt. Der Restore auf einer Installation mit PostgreSQL funktioniert nun.

comments powered by Disqus

Und es machte BOOM!

Die neue Logitech SqueezeBox Boom ist endlich auch bei uns gelandet. Während Logitech bekannte Blogger bereits vorab mit der Boom beglückte,…… Continue reading

Gitlab 8.9.5 auf 8.10.4 aktualisieren

Published on August 05, 2016

Gitlab CI 7.14 auf Gitlab 8.0 umstellen

Published on October 09, 2015