¿cuál es la diferencia entre declarar la cascada dentro de una clave externa vs relaciones?sqlalchemy: ¿cuál es la diferencia entre declarar la cascada dentro de la relación de clave externa?
class Contact(Base):
__tablename__ = 'contacts'
id = Column(Integer, primary_key=True)
addresses = relation("Address", backref="contact")
class Address(Base):
__tablename__ = 'addresses'
id = Column(Integer, primary_key=True)
contact_id = Column(Integer, ForeignKey('contact.id', onupdate="CASCADE", ondelete="CASCADE")))
vs
class Contact(Base):
__tablename__ = 'contacts'
id = Column(Integer, primary_key=True)
addresses = relation("Address", backref="contact", cascade="all, delete-orphan")
class Address(Base):
__tablename__ = 'addresses'
id = Column(Integer, primary_key=True)
contact_id = Column(Integer, ForeignKey('contact.id'))
con la declaración de clave externa, parece que la cascada se aplica en el nivel de base de datos. ¿Cómo funciona el acercamiento de las relaciones? ¡Gracias!
¿Debo realmente combinar los dos para que la relación tenga conocimiento de la cascada de la base de datos? – steve
Consulte la documentación de los parámetros pasiva_actualizaciones y pasivos_deletas para la función de relación: http://www.sqlalchemy.org/docs/reference/orm/mapping.html#sqlalchemy.orm.relationship –
awesome. gracias por la aclaración. – steve