在我的模型中,我有一个如此定义的表:
db.define_table('address',
Field('address1','string'),
Field('address2','string'),
Field('city','string'),
Field('state','string'),
Field('postal_code','string'),
Field('country','string'),
)
db.address.address1.notnull = True
db.address.city.notnull = True
db.address.country.notnull = True
但是,在数据库(postgresql)中生成此表时,关联字段没有NOT NULL约束。为什么?如何确保添加NOT NULL约束?
答案 0 :(得分:1)
在调用db.define_table()
时完成迁移(包括创建尚不存在的表),因此影响实际数据库模式的任何属性都必须包含在初始字段定义中,而不是之后(您可以在db.define_table()
调用之后设置特定于web2py的字段属性,例如“表示”,“要求”,“默认”,“可读”等。所以,应该是:
Field('address1','string', notnull=True)