PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie kann ich UUIDs in SQLAlchemy verwenden?

Der sqlalchemy Postgres-Dialekt unterstützt UUID-Spalten. Das ist einfach (und die Frage ist speziell Postgres) - ich verstehe nicht, warum die anderen Antworten alle so kompliziert sind.

Hier ist ein Beispiel:

from sqlalchemy.dialects.postgresql import UUID
from flask_sqlalchemy import SQLAlchemy
import uuid

db = SQLAlchemy()

class Foo(db.Model):
    id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4)

Achten Sie darauf, den callable nicht zu verpassen uuid.uuid4 in die Spaltendefinition, anstatt die Funktion selbst mit uuid.uuid4() aufzurufen . Andernfalls haben Sie für alle Instanzen dieser Klasse denselben Skalarwert. Weitere Details hier:

Ein skalarer, aufrufbarer Python- oder ColumnElement-Ausdruck, der den Standardwert für diese Spalte darstellt, der beim Einfügen aufgerufen wird, wenn diese Spalte nicht anderweitig in der VALUES-Klausel der Einfügung angegeben ist.