¿Cómo especificar relaciones usando la sintaxis declarativa SQLAlchemy?
-
05-07-2019 - |
Pregunta
No puedo encontrar ninguna documentación adecuada sobre cómo especificar relaciones
utilizando la sintaxis declarativa de SQLAlchemy .. ¿Es incompatible? Es decir, ¿debería usar el " tradicional " sintaxis?
Estoy buscando una manera de especificar relaciones en un nivel superior, evitando tener que meterme con claves foráneas, etc. Me gustaría simplemente declarar " direcciones = OneToMany (Address) " y deje que el marco se encargue de los detalles. Sé que Elixir puede hacer eso, pero me preguntaba si " llano " SQLA también podría hacerlo.
¡Gracias por tu ayuda!
Solución
Suponiendo que te refieres a el complemento declarativo , donde todo Estoy a punto de decir que está documentado con ejemplos:
class User(Base):
__tablename__ = 'users'
id = Column('id', Integer, primary_key=True)
addresses = relation("Address", backref="user")
class Address(Base):
__tablename__ = 'addresses'
id = Column('id', Integer, primary_key=True)
user_id = Column('user_id', Integer, ForeignKey('users.id'))
Otros consejos
Mire la sección " Configuring Relations " sección de los Documentos declarativos . No es tan alto como " OneToMany " pero mejor que especificar completamente la relación.
class Address(Base):
__tablename__ = 'addresses'
id = Column(Integer, primary_key=True)
email = Column(String(50))
user_id = Column(Integer, ForeignKey('users.id'))