Seite 1 von 1

Auslesen von bestehender MSSQL Datenbank mit Django

Verfasst: Montag 2. Februar 2009, 15:12
von madthomas
Hallo

Ich versuche Django mit einer vorhanden Datenbank zum laufen zu bringen.
Mit dem Befehl

Code: Alles auswählen

python mysite/manage.py inspectdb > mysite/myapp/models.py
kann ich mir die Models erstellen lassen was mir eine menge Arbeit erspart.
Jetzt hab ich aber das Problem das in der Tabelle ä ü ö vorkommen und der dann beim erstellen immer abbricht mit dem Fehler
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe4' in Position 8: ordinak not in range(128)
Leider kann ich an der Datenbank nicht ohne weiteres die Daten ändern.
Hab es schon versucht mit

Code: Alles auswählen

DEFAULT_CHARSET = 'UTF-16'
hat aber nichts gebracht.
Wäre für jede Hilfe froh.
Danke
Gruß Thomas

Verfasst: Montag 2. Februar 2009, 15:21
von Dauerbaustelle
Also entweder du setzt das Charset auf das Charset, welches auch deine MSSQL-Datenbank hat (vermutlich ISO-xxxx-xx), oder du musst den Code hinter 'inspectdb' abwandeln.

Verfasst: Montag 2. Februar 2009, 23:43
von apollo13
MSSQL wird doch von Django gar nicht supported, vlt solltest du den Maintainer des Backends fragen?!

Verfasst: Dienstag 3. Februar 2009, 08:18
von madthomas
Die Verbindung zu MSSQL klappt ohne Probleme mit sqlserver_ado.

Bin jetzt etwas tiefer in den Code eingestiegen.
Das Problem ist das in der inspectdb.py die Daten ja in eine Datei geschrieben werden mit "print". Ich vermute das da das Problem liegt weil wenn ich auf die Konsole mir alles ausgeben lasse geht es.

Code: Alles auswählen

python mysite/manage.py inspectdb 
gibt es eine Möglichkeit was an der inspectdb.py zu ändern das der die in eine Datei schreibt?

Bin jetzt hin gegangen hab es mir auf die Konsole ausgeben lassen und dann in mein script kopiert

Gruß Thomas

Verfasst: Dienstag 3. Februar 2009, 16:41
von Dauerbaustelle
madthomas hat geschrieben: Das Problem ist das in der inspectdb.py die Daten ja in eine Datei geschrieben werden mit "print".
Ohne den Code zu kennen, ich vermute, du hast da was verwechselt, mit "print" schreibt man nämlich nichts in eine Datei O___O

Verfasst: Dienstag 3. Februar 2009, 19:13
von Trundle
@Dauerbaustelle: Man kann mit print auch in Dateien schreiben.

Verfasst: Dienstag 3. Februar 2009, 19:22
von Dauerbaustelle
Echt? Auf stdout schreiben und dann einlesen oder was? O__o

Verfasst: Dienstag 3. Februar 2009, 19:35
von lunar