Comment spécifier des relations à l'aide de la syntaxe déclarative SQLAlchemy?

StackOverflow https://stackoverflow.com/questions/250398

  •  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!

Était-ce utile?

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'))
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top