django + MySQL + datetime 00-00-0000

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

django + MySQL + datetime 00-00-0000

Beitragvon jens » Dienstag 20. Februar 2007, 17:00

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.

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

Beitragvon mitsuhiko » Dienstag 20. Februar 2007, 22:26

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder