Comment spécifier des relations à l'aide de la syntaxe déclarative SQLAlchemy?
-
05-07-2019 - |
Question
Je ne trouve pas de documentation appropriée sur la manière de spécifier des relations
en utilisant la syntaxe déclarative de SQLAlchemy .. Est-ce non supporté? C’est-à-dire, devrais-je utiliser le "traditionnel" syntaxe?
Je cherche un moyen de spécifier des relations à un niveau supérieur, en évitant de manipuler des clés étrangères, etc. Je voudrais simplement déclarer "adresses = OneToMany (Address)". et laissez le cadre gérer les détails. Je sais qu'Elixir peut le faire, mais je me demandais si " plain " SQLA pourrait le faire aussi.
Merci pour votre aide!
La solution
En supposant que vous vous référiez au le plugin déclaratif , où tout Je suis sur le point de dire est documenté avec des exemples:
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'))
Autres conseils
Consultez la section "Configuration des relations". section de la Documents de déclaration . Pas tout à fait aussi élevé que "OneToMany" mais mieux que de spécifier complètement la relation.
class Address(Base):
__tablename__ = 'addresses'
id = Column(Integer, primary_key=True)
email = Column(String(50))
user_id = Column(Integer, ForeignKey('users.id'))