PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment puis-je utiliser les UUID dans SQLAlchemy ?

Le dialecte sqlalchemy postgres prend en charge les colonnes UUID. C'est facile (et la question est spécifiquement postgres) - je ne comprends pas pourquoi les autres réponses sont toutes si compliquées.

Voici un exemple :

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)

Attention à ne pas manquer de passer le callable uuid.uuid4 dans la définition de colonne, plutôt que d'appeler la fonction elle-même avec uuid.uuid4() . Sinon, vous aurez la même valeur scalaire pour toutes les instances de cette classe. Plus de détails ici :

Une expression scalaire, Python appelable ou ColumnElement représentant la valeur par défaut de cette colonne, qui sera invoquée lors de l'insertion si cette colonne n'est pas spécifiée dans la clause VALUES de l'insertion.