[Tutorial] Migration von SQLite nach MySQL (Django)

1. Exportieren Sie zunächst die SQLite-DB-Datei nach SQL

sqlite3 db.sqlite3 .dump>output.sql

db.sqlite3 ist die SQLite-Datenbankdatei

Output.sql ist der Name der exportierten SQL-Datei

2. Konvertierung und Verarbeitung von SQL-Dateien

sed 's/AUTOINCREMENT/AUTO_INCREMENT/g' output.sql | sed 's/datetime/timestamp/g' | sed 's/INTEGER/int/g' > new.sql

Nachdem SQL verarbeitet wurde, wird beim Import in MySQL möglicherweise immer noch ein Fehler gemeldet, und basierend auf dem Fehler ist eine zusätzliche Verarbeitung erforderlich.

3. In MySQL importieren

Geben Sie MySQL ein, wählen Sie Daten aus und führen Sie es dann aus

source /mnt/d/new.sql

4. Fehlerbehandlung

Wenn der Import erfolgreich ist, überspringen Sie einfach diesen Schritt .

Wenn dies fehlschlägt, verarbeiten Sie die SQL-Datei basierend auf dem Fehler erneut.

  • Wenn beispielsweise die Anweisung zur Tabellenerstellung falsch ist, muss sie möglicherweise manuell korrigiert (oder nach der Erstellung der Tabelle importiert) werden.
  • Beispielsweise können einige nutzlose SQL-Anweisungen auch mit sed '/INSERT INTO auth_/d' gelöscht werden.
  • Einige Fehlerberichte, wie z. B. PRAGMA Foreign_keys=OFF;, können als gelöscht betrachtet werden.
  • Für die Konvertierung zwischen Django SQLite und MySQL konfiguriere ich MySQL zuerst direkt in den Einstellungen und verwende dann den Migrationsbefehl von Django, um zuerst eine leere Tabelle in MySQL zu erstellen.
    • Python manage.py macht Migrationen
    • Python manage.py migrieren
    • Gibt 2 Standardeinstellungen zurück sed 's/AUTOINCREMENT/AUTO_INCREMENT/g' output.sql | sed 's/datetime/timestamp/g' | sed 's/INTEGER/int/g' | sed '/CREATE TABLE /d' | sed '/INSERT INTO django_/d' | sed '/INSERT INTO auth_/d' | sed '/INSERT INTO Login_ldapuserdb/d' > new.sql
    • Hier wird die Tabellenerstellungsanweisung „CREATE TABLE“ gelöscht und die mit insert auth_ und django_ beginnende Dateneinfügung wird ebenfalls gelöscht, da die Django-Migration bereits ausgeführt wurde.

Mehrmals wiederholen, Fehler melden <-> ändern, bis beim Importieren keine Fehler mehr auftreten.

Supongo que te gusta

Origin blog.csdn.net/ab6326795/article/details/134531364
Recomendado
Clasificación