有人可以帮助我获得大图当涉及到配置SQLAlchemy模型,所以参考完整性在各个层面都得到保证吗?参照完整性 - 如何配置SQLAlchemy?
通过引用完整性应该由数据库表达和实施的想法,我创建了一个模式(目前在Postgresql中),并且我认为我需要所有的约束,因此给了我一个我信任的数据库来强制执行参照完整性。
然后我开始在这个数据库之上建立一个应用程序,在声明模式下使用SQLAlchemy(0.7)。
已经搜索并阅读了一下,我了解到,我可以配置:
- 的onupdate/ondelete规则在我的专栏()的定义。
- 我的关系()定义中的级联选项,
并且这些似乎在SQLAlchemy中的会话级别上运行。 - 我的关系()定义的passive_deletes和passive_updates选项。
而且所有这些选项都有默认值。
但我对我实际需要用SQLAlchemy模型做了多少事情感到困惑,以确保SQLAlchemy在会话期间不会与数据库及其约束不同步。
如果我在SQLAlchemy中的Columns()定义上配置'onupdate'等等,我到底在做什么?
而对于cascade和passive_delete/passive_update规则,我可以在关系()上进行配置。我在这里需要什么,为什么?
还是要改写我的问题:什么事情让延长会的SQLAlchemy知道在DB模式配置的限制,以及在何种扩展(以及如何)我要重复他们在我的模型?
还有什么我应该知道的? :)
嗨zzzeek, 感谢您尝试解除一些雾气在我的头上。而对于SQLAlchemy本身! :) 我已经为自己的问题添加了一个“答案”,在那里我总结了我认为我学到了什么。 希望我在正确的轨道上... – herira