【发布时间】:2015-04-17 09:11:00
【问题描述】:
有没有办法在 Alembic 中创建具有 postgresql 排除约束的表,而无需编写文字 SQL?
例如,考虑这个表:
CREATE TABLE reservation (
during tsrange,
EXCLUDE USING gist (during WITH &&)
);
排除约束似乎不在 alembic 中可用的约束类型之列。
由于 SQLAlchemy 支持ExcludeConstraints
from sqlalchemy.dialects.postgresql import ExcludeConstraint, TSRANGE
class RoomBooking(Base):
__tablename__ = 'room_booking'
room = Column(Integer(), primary_key=True)
during = Column(TSRANGE())
__table_args__ = (
ExcludeConstraint(('room', '='), ('during', '&&')),
)
但 alembic 似乎无法识别它们,我想知道是否有其他方法可以在我的架构修订历史中反映此类排除约束。
【问题讨论】:
标签: postgresql sqlalchemy alembic