django + MySQL + datetime 00-00-0000

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Bisher habe ich nicht darauf geachtet, ob der MySQL Server mit NO_ZERO_DATE oder im Modus TRADITIONAL arbeitet. Siehe: http://dev.mysql.com/doc/refman/5.0/en/ ... -mode.html

Das hat zur folge, das datetime felder in meine DB falsch eingetragen waren und nicht wirklich NULL sind.

Damit gibt es aber Probleme mit django, siehe: http://code.djangoproject.com/ticket/443

Den einfachen Fix den ich dort aufgeführt habe, bringt es nicht wirklich. Es hilft zwar bei inspectdb, nicht jedoch später. Außerdem wird der Patch nicht in django integriert, die Bug Kommentar von dustin@spy.net :?

Das dumme ist, das man innerhalb von django die Felder nicht korrigieren kann, auch mit "raw SQL" nicht, weil es dennoch zum traceback führt. Ich weiß nicht ob man evtl. den errorhandler von MySQLdb verbiegen kann, oder so...
Jedenfalls hab ich mir dafür nun ein kleines Skript geschrieben, welches die Felder korrigiert:
http://pylucid.net/trac/browser/branche ... SQL_fix.py

Sollte kein Problem sein, das Skript für sich anzupassen.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

00-00-0000 ist kein gültiges Datum. Punkt. NULL speichern.
TUFKAB – the user formerly known as blackbird
Antworten