和:
class X(Base):
__tablename__ = 'x'
id = Column(Integer, primary_key=True)
ys = relationship("Y")
class Y(Base):
__tablename__ = 'y'
id = Column(Integer, primary_key=True)
data = Column(String, unique=True)
x_id = Column(Integer, ForeignKey('x.id'), nullable=False)
如果我做类似的事情:
# x is instance of X
x.ys #=> ["x"]
x.ys.extend(["x", "y", "z", "a"])
session.save()
anIntegrityError
得到提升(当然)。
有没有办法(a)获取一系列冲突问题(在异常时,而不是新的数据库请求)或(b)告诉 SQLAlchemy 继续前进(在示例中,y, z, a
添加了?
(是的,我会在这里和 Postgres 下进行某种类似“设置”的行为,所以如果有其他方法可以实现这一点,我也会全神贯注。)