16
我在SQLAlchemy中定義的所有表都有一個類型爲UUID的id列。如何使用SQLAlchemy將列默認設置爲PostgreSQL函數?
from sqlalchemy.ext.declarative import declarative_base
from uuid import uuid4
Base = declarative_base()
class MyTable(Base):
id = Column(UUIDtype, default=uuid4, primary_key=True)
哪裏UUIDtype
是PostgreSQL的UUID類型特殊列類型。這在PostgreSQL中成功創建了UUID列,但是在使用SQLAlchemy插入時僅生成默認的UUID值。這對我的一些用例來說很好,但是我希望在SQLAlchemy之外發生插入時在PostgreSQL端分配列的默認值。
塔上的以下SQL命令的地方適當的默認:
ALTER TABLE my_table ALTER COLUMN id SET DEFAULT uuid_generate_v4()
我如何分配此uuid_generate_v4()
功能通過SQLAlchemy的模型定義的列默認?如果唯一的選擇是通過執行原始SQL語句,是否有辦法讓我將該語句的執行掛鉤到表創建過程中?
謝謝。這正是我需要的。 –
用'create extension uuid-ossp'安裝'uuid-ossp'模塊 – mozillazg
或者使用'gen_random_uuid()'而不是'uuid_generate_v4()'並用'create extension pgcrypto'安裝'pgcrypto' – mozillazg