1

と:

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)競合する問題の配列を取得する(新しいDBリクエストではなく、例外時に)、または(b)SQLAlchemyに続行するように指示する方法はありますか(例では、y, z, a追加しましたか?

(はい、私はここと Postgres の下である種の「セット」のような動作をしようとしているので、これを達成する他の方法があれば、私も耳を傾けます。)

4

1 に答える 1