Die Migration zwischen zwei sehr unterschiedlichen DBMS erfordert viel mehr als nur die Migration der Daten. Die Migration der Daten ist jedoch normalerweise der einfachste Teil.
Die Art und Weise, die ich ausprobiert habe, ist kostenlos und ich kann bestätigen, dass es funktioniert:
- erstelle ein mysql schema only dump
- Passen Sie die SQL mit einem Texteditor und viel Suchen und Ersetzen an
- Führen Sie das konvertierte SQL in Postgres aus
- Erstellen Sie einen Klartext-Dump aus MySQL (z. B. CSV oder ein anderes Format mit Trennzeichen).
- Importieren Sie die Daten mit dem Befehl COPY von PostgreSQL
Das Importieren der Daten kann tatsächlich schwierig sein, wenn Sie sich auf das Verhalten von MySQL verlassen, um illegale Daten zu akzeptieren (wie zum Beispiel am 31. Februar).
Ich gehe davon aus, dass dies schneller gehen wird, als nach einem Werkzeug zu suchen, ein paar davon auszuwerten und dann zu versuchen, das von Ihnen gewählte zu verstehen. Aber es hängt davon ab, auf welche Art von "groß" Sie sich beziehen. Wenn mehrere hundert Tische groß sind, ist dies möglicherweise nicht möglich. Wenn sich big nur auf die Anzahl der Zeilen bezieht, ist dies wahrscheinlich der schnellste Weg, dies zu tun.
Es gibt einige Tools wie Liquibase , SchemaSpy oder WbSchemaReport , die ein Datenbankschema in einem von DBMS unabhängigen (XML-) Format sichern können . Mit Liquibase wahrscheinlich am einfachsten zu bedienen. Bei den anderen muss das XSLT manuell geschrieben / erweitert werden, um das generierte XML zu transformieren.
Wenn Sie Trigger und gespeicherte Prozeduren in MySQL verwenden, gibt es meines Erachtens kein automatisiertes Tool, mit dem diese übersetzt werden können, ohne dass anschließend umfangreiche manuelle Korrekturen erforderlich sind. In diesem Fall würden die generierten Prozeduren wahrscheinlich keine erweiterten Funktionen des Ziel-DBMS verwenden .