Как установить столбец по умолчанию для функции PostgreSQL с помощью SQLAlchemy?

Все мои таблицы, определенные в SQLAlchemy, имеют столбец id типа UUID.

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 - специальный тип столбца для типа UUID PostgreSQL. Это успешно создает столбец UUID в PostgreSQL, но только генерирует значение UUID по умолчанию при вставке с использованием SQLAlchemy. Это хорошо для некоторых моих вариантов использования, но я хочу назначить значение столбца по умолчанию для PostgreSQL, если вставка происходит вне SQLAlchemy.

Следующая команда SQL помещает правильное значение по умолчанию в столбец:

ALTER TABLE my_table ALTER COLUMN id SET DEFAULT uuid_generate_v4()

Как я могу присвоить эту uuid_generate_v4() как значение по умолчанию столбца с помощью определения модели SQLAlchemy? Если единственный вариант заключается в выполнении необработанного SQL-оператора, есть ли способ, чтобы я мог задействовать выполнение этого оператора в процессе создания таблицы?

Ответы