PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como posso usar UUIDs no SQLAlchemy?


O dialeto sqlalchemy postgres suporta colunas UUID. Isso é fácil (e a pergunta é especificamente postgres) - não entendo por que as outras respostas são tão complicadas.

Aqui está um exemplo:
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)

Tenha cuidado para não deixar de passar o callable uuid.uuid4 na definição da coluna, em vez de chamar a própria função com uuid.uuid4() . Caso contrário, você terá o mesmo valor escalar para todas as instâncias dessa classe. Mais detalhes aqui:

Uma expressão escalar, chamável em Python ou ColumnElement que representa o valor padrão para esta coluna, que será invocada na inserção se esta coluna não for especificada na cláusula VALUES da inserção.