Pergunta

Eu estou usando SqlAlchemy para interagir com um banco de dados PostgreSQL existente.

Eu preciso acessar dados organizados em um relacionamento muitos-para-muitos. A documentação descreve como criar relacionamentos, mas não consigo encontrar um exemplo para ordenadamente carregamento e consulta um já existente.

Foi útil?

Solução

Consultando uma relação existente não é realmente diferente de criar um novo. Você praticamente escrever o mesmo código, mas especificar os nomes de tabelas e colunas que já estão lá, e é claro que você não vai precisar de SQLAlchemy para emitir as declarações CREATE TABLE.

http://www.sqlalchemy.org/ docs / 05 / mappers.html # muitos-para-muitos . Tudo que você precisa fazer é especificar as colunas de chave estrangeira para seus pais, filhos e tabelas de associação existentes, como no exemplo, e especificar autoload=True para preencher os outros campos em suas tabelas. Se sua tabela de associação armazena informações adicionais, como eles quase sempre faz, você deve apenas quebrar o seu relacionamento de muitos-para-muitos em duas a muitos e um relacionamento.

Eu aprendi SQLAlchemy ao trabalhar com MySQL. Com esse banco de dados sempre tive para especificar as relações de chave estrangeira porque não eram as restrições de banco de dados explícitos. Você pode ter sorte e ser capaz de refletir ainda mais a partir de seu banco de dados, mas você pode preferir usar algo como http : //pypi.python.org/pypi/sqlautocode apenas código de todo o esquema de banco de dados e evitar o atraso reflexão

.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top