2

这是我的专栏的样子

financial_day_of_month = Column('financial_day_of_month', Integer,
                                    nullable=False, default=1)

我想针对本专栏强制执行这min=1一点。max=31PostgreSQL用作后端

虽然我可以在业务层强制执行这个逻辑,但我更喜欢在持久层强制执行它

有没有办法支持它?

4

2 回答 2

2

听起来您正在寻找一个检查约束,例如:

class FooTable(DeclBase):
    financial_day_of_month = Column('financial_day_of_month', Integer,
                                        nullable=False, default=1)
    __table_args__ = (
        CheckConstraint('financial_day_of_month between 1 and 31', name='check1'),
        {})
于 2013-05-19T21:30:05.250 回答
0

你可以做的是在你的数据库中定义一个新类型,然后使用装饰器在 SQLAlchemy 中创建你自己的类型。

于 2013-05-19T21:13:13.773 回答