SQLite zu MySQL konvertieren
Es kann vorkommen, dass man ein kleines Projekt beginnt und der Einfachheit halber eine SQLite Datenbank dafuer verwendet. Mit der Zeit wachst aber der Datenbestand und SQLite ist dann damit überfordert.
Da Hilft nur noch die Datenbank in ein performanteres System zu migrieren, z.B. MySQL. Allerdings gibt es dabei ein kleines Problem.
Die SQLite Dumps sind nicht kompatibel mit MySQL, so dass man erst den Dump konvertieren muss. Für den Fall hilft ein kleines Script aus:
#!/usr/bin/env python
import sys
import re
file = sys.stdin.read()
file = re.sub(r'(CREATE (TABLE|INDEX)[^;]*|COMMIT|BEGIN TRANSACTION);', '', file)
file = re.sub(r'INSERT INTO "([^"]+)"', lambda m: 'INSERT INTO `%s`' % m.groups(1), file)
sys.stdout.write(file)
Damit lässt sich der Dump wie folgt konvertieren:
./sqlite2mysql < sqlite_dump.sql > mysql_dump_dataonly.sql
|
2 Kommentare zu “SQLite zu MySQL konvertieren”
Hallo Axel,
ich habe ein Problem mit Sqlite nach Mysql zu konvertieren, bloß weiß ich nicht wie denn ich muss leider auf ein Windows Rechner Arbeiten…
was würdest mir empfehlen wie ich Vorgehen soll ?
soll ich die Datenbanken unter linux entpacken und dann mit ein schönem Skript konv.
?
Unter Windows ist das leider ziemlich umständlich. Das Skript läuft zwar prinzipiell unter Windows aber ob das mit den Pipes unter Windows funktioniert, bin ich mir nicht sicher. Mit Cygwin wäre das kein Problem. Aber nur dafür Cygwin zu installieren ist etwas zu aufwändig. Ich würde an deiner Stelle das ganze auf einem Unix Server machen, da sollte eh meist Python installiert sein.
Kommentar hinzufügen