Pergunta

Não consigo encontrar nenhuma documentação adequada sobre como especificar as relações usando a sintaxe declarativa da sqlalChemy. Não é suportada? Ou seja, devo usar a sintaxe "tradicional"?
Estou procurando uma maneira de especificar as relações em um nível mais alto, evitando ter que mexer com as chaves estrangeiras etc. Eu gostaria de apenas declarar "endereços = Onetomany (endereço)" e deixar a estrutura lidar com os detalhes. Eu sei Esse Elixir pode fazer isso, mas eu estava me perguntando se o SQLA "simples" também poderia fazer isso.
Obrigado pela ajuda!

Foi útil?

Solução

Supondo que você esteja se referindo a o plugin declarativo, onde tudo o que estou prestes a dizer está documentado com exemplos:

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'))

Outras dicas

Veja a seção "Configurando relações" do Documentos declarativos. Não é tão alto quanto "Onetomany", mas melhor do que especificar totalmente a relação.

class Address(Base):
    __tablename__ = 'addresses'

    id = Column(Integer, primary_key=True)
    email = Column(String(50))
    user_id = Column(Integer, ForeignKey('users.id'))
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top