Migration MySQL zu PostgreSQL

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;

links

social