sql >> Base de Datos >  >> RDS >> PostgreSQL

¿Cómo puedo usar UUID en SQLAlchemy?

El dialecto sqlalchemy postgres admite columnas UUID. Esto es fácil (y la pregunta es específicamente postgres). No entiendo por qué las otras respuestas son tan complicadas.

Aquí hay un ejemplo:

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)

Tenga cuidado de no pasar por alto el callable uuid.uuid4 en la definición de la columna, en lugar de llamar a la función en sí misma con uuid.uuid4() . De lo contrario, tendrá el mismo valor escalar para todas las instancias de esta clase. Más detalles aquí:

Una expresión escalar, invocable por Python o ColumnElement que representa el valor predeterminado para esta columna, que se invocará al insertar si esta columna no se especifica de otro modo en la cláusula VALUES de la inserción.