Seite 1 von 1

SQLAlchemy und Tabellen mit Default-Werten erzeugen

Verfasst: Mittwoch 23. April 2008, 10:20
von Jan-Peer
Hallo,

ich erzeuge mittels SQLAlchemy einige Tabellen in einer MySQL-Datenbank. Dabei möchte ich einigen Spalten Default-Werte mitgeben. Wenn ich diese bei der Spaltenerzeugung mittels des "default"-Keywords übergebe landen sie aber leider nicht in der Datenbank. Ich vermute, das SQLAlchemy diese Einstellungen nur auf den Objekten vornimmt und nicht mit in die DB schreibt.

Frage: Kennt jemand eine Möglichkeit, via SQLAlchemy Spalten mit Defaultwert zu erzeugen?

Schönen Gruß

Jan-Peer

Verfasst: Mittwoch 23. April 2008, 11:35
von Y0Gi
Ich habe die Feststellung gemacht, dass SA generell alle Spalten mit NULL=yes und ohne Defaults anlegt. Ausnahme sind Primärschlüssel mit "auto_increment", die haben natürlich NULL=no.

Ja, offenbar kümmert sich SA bei der Objekt-/Datensatzerzeugung um die Defaults, also selbst zur Laufzeit. Könnte daher rühren, dass evtl. einige DBMS keine Defaults auf welche Weise auch immer unterstützen oder dass es aus zzzeeek's Sicht so einfach sinnvoller und/oder praktischer ist.

Wieso ist das denn ein Problem für dich?

Verfasst: Mittwoch 23. April 2008, 12:02
von Jan-Peer
Weil ich an anderer Stelle, ohne Alc, in diese Tabellen schreibe und dabei aus Bequemlichkeit ein "unvollständiges" Insert verwende. Es ist zwar mittelfristig geplant, dieses Programm auch auf Alc umzuschreiben, aber im Moment muß es noch so funktionieren. Ist auch kein großes Drama - entweder ich ändere die drei Spalten manuell, oder ich ändere das Insert. Aber wenn Alc das von vornherein beherrschen würde, wäre das natürlich noch viel toller ...

Verfasst: Mittwoch 23. April 2008, 12:13
von Y0Gi
Möglicherweise gibt es ja Argumente, die das beeinflussen. Ggf. mal im IRC (#sqlalchemy auf Freenode) nachfragen und evtl. vorschlagen.