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.