Seite 1 von 1

django + MySQL + datetime 00-00-0000

Verfasst: Dienstag 20. Februar 2007, 17:00
von jens
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.

Verfasst: Dienstag 20. Februar 2007, 22:26
von mitsuhiko
00-00-0000 ist kein gültiges Datum. Punkt. NULL speichern.