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.