Het dialect sqlalchemy postgres ondersteunt UUID-kolommen. Dit is gemakkelijk (en de vraag is specifiek postgres) -- ik begrijp niet waarom de andere antwoorden allemaal zo ingewikkeld zijn.
Hier is een voorbeeld:
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)
Zorg ervoor dat u de callable
. niet mist uuid.uuid4
in de kolomdefinitie, in plaats van de functie zelf aan te roepen met uuid.uuid4()
. Anders heb je dezelfde scalaire waarde voor alle instanties van deze klasse. Meer details hier:
Een scalaire, Python-aanroepbare of ColumnElement-expressie die de standaardwaarde voor deze kolom vertegenwoordigt, die wordt aangeroepen bij het invoegen als deze kolom anders niet is opgegeven in de VALUES-clausule van de invoeging.