Auslesen von bestehender MSSQL Datenbank mit Django

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
madthomas
User
Beiträge: 35
Registriert: Dienstag 7. August 2007, 10:32
Wohnort: WND
Kontaktdaten:

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
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

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.
apollo13
User
Beiträge: 827
Registriert: Samstag 5. Februar 2005, 17:53

MSSQL wird doch von Django gar nicht supported, vlt solltest du den Maintainer des Backends fragen?!
madthomas
User
Beiträge: 35
Registriert: Dienstag 7. August 2007, 10:32
Wohnort: WND
Kontaktdaten:

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
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

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
Benutzeravatar
Trundle
User
Beiträge: 591
Registriert: Dienstag 3. Juli 2007, 16:45

@Dauerbaustelle: Man kann mit print auch in Dateien schreiben.
"Der Dumme erwartet viel. Der Denkende sagt wenig." ("Herr Keuner" -- Bertolt Brecht)
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Echt? Auf stdout schreiben und dann einlesen oder was? O__o
Antworten