SQLAlchemy und Tabellen mit Default-Werten erzeugen

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Jan-Peer
User
Beiträge: 166
Registriert: Dienstag 2. Oktober 2007, 10:55

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
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

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?
Jan-Peer
User
Beiträge: 166
Registriert: Dienstag 2. Oktober 2007, 10:55

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 ...
Y0Gi
User
Beiträge: 1454
Registriert: Freitag 22. September 2006, 23:05
Wohnort: ja

Möglicherweise gibt es ja Argumente, die das beeinflussen. Ggf. mal im IRC (#sqlalchemy auf Freenode) nachfragen und evtl. vorschlagen.
Antworten