Dialek sqlalchemy postgres mendukung kolom UUID. Ini mudah (dan pertanyaannya khusus postgres) -- Saya tidak mengerti mengapa jawaban lainnya begitu rumit.
Ini contohnya:
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)
Berhati-hatilah agar tidak melewatkan callable
uuid.uuid4
ke dalam definisi kolom, daripada memanggil fungsi itu sendiri dengan uuid.uuid4()
. Jika tidak, Anda akan memiliki nilai skalar yang sama untuk semua instance kelas ini. Selengkapnya di sini:
Ekspresi skalar, Python yang dapat dipanggil, atau ColumnElement yang mewakili nilai default untuk kolom ini, yang akan dipanggil saat dimasukkan jika kolom ini tidak ditentukan dalam klausa VALUES dari sisipan.