【发布时间】:2016-04-02 13:20:49
【问题描述】:
我有 Parent 和 Child 这样的基本 Flask 应用程序:
class Parent(db.Model):
__tablename__ = 'parents'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String)
class Child(db.Model):
__tablename__ = 'children'
id = db.Column(db.Integer, primary_key=True)
parent_id = db.Column(db.Integer, db.ForeignKey('parents.id'), nullable=False)
parent = db.relationship('Parent', backref=db.backref('children', cascade='all,delete'))
name = db.Column(db.String)
如果重要的话,我会使用 Postgres 作为数据库。
现在我想做以下事情:从孩子中删除 cascade='all,delete' 并使这个 parent_id 可以为空。 IE。当 Parent 从 DB 中删除时,Child 与 parent_id == NULL 保持一致。
我知道我可以使用模式创建脚本来指定它,将约束添加到 FK。但我只想将其标记为 NULL 并允许 SqlAlchemy 控制儿童 FK 的无效。
【问题讨论】:
标签: python postgresql sqlalchemy