Das Migrieren von einer Datenbank-Technologie zu einer anderen kann sehr schmerzvoll sein. Ein kleines Hilfsmittel, um von MySQL zu PostgreSQL zu migrieren, ist PGLoader.
PGLoader kann ganze MySQL Strukturen inklusive der enthaltenen Daten in eine bereits existierende PostgreSQL-Datenbank überführen, inklusiver Indizes, Constraints, etc.
pgloader --dry-run mysql://user:pass@mysql-host/databasename postgresql://user:pass@postgresql-host/databasename
Dabei kann mittels der Option --dry-run=true
die Migration erstmal simuliert
werden bevor man letztendlich zur Tat schreitet.
Wichtig:
PGLoader wird ein eigenes Schema in der PostgreSQL-Datenbank anlegen und
nicht das Standard-Schema public
nutzen. Als Name wird dabei der Name der
alten MySQL-Datenbank genutzt. Manch eine Software wird damit
Probleme haben, daher sollte man in diesem Fall nach der Migration noch das
Schema umbenennen. Dies funktioniert in der pgsql-Shell wie folgt.
\c databasename
drop schema public;
alter schema oldmysqldatabasename rename to public;