PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come posso utilizzare gli UUID in SQLAlchemy?

Il dialetto sqlalchemy postgres supporta le colonne UUID. È facile (e la domanda è specificamente postgres) -- non capisco perché le altre risposte siano tutte così complicate.

Ecco un esempio:

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)

Fai attenzione a non perdere il passaggio del callable uuid.uuid4 nella definizione della colonna, invece di chiamare la funzione stessa con uuid.uuid4() . In caso contrario, avrai lo stesso valore scalare per tutte le istanze di questa classe. Maggiori dettagli qui:

Un'espressione scalare, richiamabile Python o ColumnElement che rappresenta il valore predefinito per questa colonna, che verrà richiamata all'inserimento se questa colonna non è altrimenti specificata nella clausola VALUES dell'inserto.