Ich fange an, Alembic in mein Projekt zu integrieren, das bereits SQLAlchemy Tabellendefinitionen verwendet. Derzeit wird mein DB-Schema außerhalb meiner Anwendung verwaltet, und ich möchte das gesamte Schema in meine Tabellendefinitionsdatei bringen.Wie kann ich eine benutzerdefinierte PostgreSQL-Domäne in SQLAlchemy darstellen?
In PostgreSQL verwende ich eine benutzerdefinierte Domain zum Speichern von E-Mail-Adressen. Die PostgreSQL DDL ist:
CREATE DOMAIN email_address TEXT CHECK (value ~ '[email protected]+')
Wie vertrete ich die Schaffung dieser Domäne und die Verwendung davon als Spaltendatentyp, in SQLAlchemy?
Diese Frage scheint ein wenig fortgeschrittener, vielleicht finden Sie bessere Hilfe auf der SQLAlchemy-Liste. Für die Verwendung des Typs würde ich empfehlen, einen Weg zu finden, die 'TEXT' abzuleiten und ihren Namen in' email_address' zu ändern. Dies wäre der einfachste Weg (aber ich weiß nicht, wie es geht). Der letzte Teil könnte wahrscheinlich durch literales SQL erfolgen, da ich nicht sicher bin, ob SQLAlchemy eine Schnittstelle zum Erstellen von Typen hat, die noch nicht existieren. – javex
@javex für jetzt Ich erstelle die Domäne durch Ausgabe von benutzerdefinierten DDL und ich habe 'UserDefinedType' subclasse, um 'email_address' für seine Spaltentypdefinition zurückzugeben. Nicht ideal, aber es funktioniert gut genug. Ich kann die SQLA-Liste überprüfen, danke für diesen Vorschlag. – skyler