Pergunta

Eu estava pensando em criar um banco de dados SQLite separado para determinados aplicativos em um projeto Django.
No entanto, eu não queria usar o acesso direto do SQLite, se possível. O acesso do ORM no estilo Django a esse banco de dados seria ideal.
Isso é possível?

Obrigada.

Foi útil?

Outras dicas

Sim-a API de baixo nível para isso está em vigor, está apenas perdendo uma API de alto nível conveniente no momento. Essas citações são de James Bennett (gerente de lançamento de Django) na programação Reddit:

Está lá-em uma API de nível extremamente baixo para quem olha para a base de código-há meses (cada QuerySet é apoiado por um Query, que por sua vez aceita uma conexão de banco de dados como argumento). Não há nenhuma API documentada de alto nível, mas eu conheço pessoas que já estão fazendo e estão fazendo coisas como cenários de múltiplos dB/sharding.

... Não é necessariamente algo que precisa de uma grande redação; a __init__() método de QuerySet aceita um argumento de palavra -chave query, que deve ser uma instância de django.db.models.sql.Query. o __init__() método de Query, por sua vez, aceita um argumento de palavra -chave connection, que deve ser uma instância de (uma subclasse específica de back-end para o seu banco de dados) django.db.backends.BaseDatabaseWrapper.

A partir daí, é muito fácil; você poderia, por exemplo, substituir get_query_set() em um gerente para sempre retornar um QuerySet Usando a conexão desejada ou configure coisas como lógica de sharding para descobrir qual banco de dados usar com base nos parâmetros de consulta recebidos etc. etc.

Atualmente não - cada projeto usa um banco de dados e todo aplicativo deve existir nele. Se você deseja ter um banco de dados específico do aplicativo, não pode fazê-lo através do Django ORM. Veja a página do Django Wiki Múltipla suporte ao banco de dados.

Isso ainda não é possível, mas se fala nisso no wiki, Suporte de banco de dados múltiplo em Django. Também foi criado durante o palestra sobre o futuro de Django em Djangocon 2008 e fez uma das questões de prioridade mais alta.

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