2016-04-24 16 views
0

Ich bekomme Bit versucht, dumpdata aus einer Legacy-DB Ich habe vor kurzem ein Reverse Engineering mit Django inspectdb ... ... Sonst funktioniert jede Abfrage gut. In der MySQL-Workbench existiert die Spalte. Aber beim Versuch, die Daten zu exportieren ich:Django dumpdata kann keine vorhandene Spalte serialisieren

CommandError: Unable to serialize database: no such column: af_datper.locnac 

traceback Verwendung nicht jede meiner Zeilen offenbaren beeinflussen (klebte hier nicht http://dpaste.com/1DASN1V zu verschmutzen).

bereits das Modellfeld Nullwert für diese Spalte gibt und die Spalte in der Datenbank nicht vorhanden ist (unter sie mit der Werkbank zu sehen, würde inspectdb es nicht abgeholt ...

ich ehrlich gesagt nicht .? wissen, was anderes zu tun Jeder Abnehmer

Antwort

0

Ein bisschen in die Zurückverfolgungs graben, ich sehe dies:

Datei „Venv/lib/python3.5/site-packages/django/db/Backends /utils.py ", Zeile 64, in Ausführung Rück self.cursor.execute (sql, params) Datei "Venv/lib/python3.5/site-packages/django/db/backends/sqlite3/base.py" Leitung 323, führen in return Database.Cursor. ausführen (self, Abfrage, params) sqlite3.OperationalError: keine solche Spalte: af_datper.locnac

Von der SQLite documentation:

Wenn ein Schemaname angegeben ist, muss es sein entweder "main", "temp" oder der Name einer angehängten Datenbank. In diesem Fall wird die neue Tabelle in der benannten Datenbank erstellt. Wenn die „TEMP“ oder „Temporary“ Stichwort tritt zwischen dem „CREATE“ und „TABLE“ dann die neue Tabelle in der temporären Datenbank erstellt wird. Es ist ein Fehler, einen Schemanamen und das Schlüsselwort TEMP oder TEMPORARY anzugeben, es sei denn, der Schemaname ist "temp". Wenn kein Schemaname angegeben ist und das Schlüsselwort TEMP nicht vorhanden ist, wird die Tabelle in der Hauptdatenbank erstellt.

Kurz gesagt, SQLite unterstützt keine foo.bar als Spaltenname, es sei denn, foo der Name der Datenbank oder eines main oder temp ist.

+0

Ich verwende MySQL für diese App ... – tutuca

+0

nicht nach Ihren Zurückverfolgungs, die den Fehler bei sqlite3 des Connectors wirft. –

+0

Alles klar, das ist ein Hinweis. Ich benutze einen benutzerdefinierten Router und diese Anwendung spricht mit mysql während Auth auf SQLite ist ... Ich werde das entfernen und migrieren auf mysql ... – tutuca

Verwandte Themen