Ich verwende den SQLAlchemy-Kern mit einer postgresql-Datenbank und möchte das hinzufügen ENUM Typ zu meiner Tabellendefinition. Laut der PostgreSQL-Dokumentation muss der ENUM-Typ vor der Erstellung der Tabelle definiert werden:
%Vor%Das Problem ist, wenn ich die Tabellendefinition erstelle. Nach dem Lesen der SQLAlchemy-Dokumentation konnte ich keine Implementierung finden Beispiel. Ich habe so etwas versucht, aber es hat nicht funktioniert:
%Vor%Wie muss es gemacht werden?
Sie müssen Enum von sqlalchemy importieren und einen Namen hinzufügen. Es sollte so funktionieren:
%Vor%@ Tims Antwort ist definitiv richtig, aber ich wollte die Art und Weise anbieten, wie ich meine ENUMs eingerichtet habe.
In meinem models.py erstelle ich die Werte als Tupel
skill_levels = ('Zero', 'A little', 'Some', 'A lot')
Dann werde ich eine skill_level_enum-Variable erstellen und ihr eine ENUM-Klasse mit den Skill-Level-Werten als Argumente zuweisen.
skill_level_enum = ENUM(*skill_levels, name="skill_level")
In meinem Tabellenmodell gebe ich dann skill_level_enum
ein %Vor%Ich habe festgestellt, dass dies meinen Code viel sauberer macht und ich bin in der Lage, die skill_levels am Anfang meiner Datei zu aktualisieren, anstatt meine Modelle nach dem richtigen Update zu durchsuchen.
Tags und Links postgresql enums sqlalchemy