Elixir没有使用默认值创建表

时间:2009-11-16 04:27:44

标签: python sqlalchemy python-elixir

class MyObject(Entity):
    name = Field(Unicode(256), default=u'default name', nullable=False)

    using_options(shortnames=True)
    using_mapper_options(save_on_init=False)

    def __init__(self):
        self.name = None  

我在这种情况下使用MySQL,但也检查了SQLite,我得到了相同的结果。它尊重nullable,但完全忽略default。我没有收到任何错误消息,它创建表就好了。我可以回过头来添加默认值,但如果可能的话,这是一个我想避免的严重痛苦。

我已尝试过其他Field类型,但仍然没有快乐。

1 个答案:

答案 0 :(得分:2)

SQLAlchemy中的

default关键字参数是针对Python运行时的默认值,它用于INSERT语句。当您确实需要数据库级别默认值时,使用PassiveDefault()对象作为位置参数。