É possível ter bancos de dados SQLite separados dentro do mesmo projeto Django?

votos
4

Eu estava considerando a criação de um banco de dados SQLite separado para determinadas aplicações em um projeto Django.
No entanto, eu não queria usar o acesso SQLite direta, se possível. Django-style acesso ORM a estes banco de dados seria o ideal.
Isso é possível?

Obrigado.

Publicado 03/10/2008 em 19:27
fonte usuário
Em outras línguas...                            


4 respostas

votos
5

Sim - a API de baixo nível para isso é no lugar, é só faltando uma API de alto nível conveniente no momento. Estas citações são de James Bennett (gerente de lançamento do Django) no reddit programação :

Tem sido lá - em uma API extremamente baixo nível para aqueles que olham para a base de código - por meses agora (todos QuerySeté apoiado por uma Query, que por sua vez aceita uma conexão DB como um argumento). Não há qualquer alto nível API documentado para isso, mas eu sei que as pessoas que já estão fazendo e têm vindo a fazer coisas como cenários de múltipla DB / sharding.

... não é necessariamente algo que precisa de um grande write-up; o __init__()método de QuerySetaceita 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 (a subclasse específica de backend para o seu DB of) django.db.backends.BaseDatabaseWrapper.

De lá, é muito fácil; você poderia, por exemplo, substituição get_query_set()de um gerente para sempre voltar a QuerySetutilizar a ligação que você quer, ou configurar coisas como sharding lógica para descobrir qual o banco de dados para usar com base em parâmetros de consulta de entrada, etc., etc.

Respondeu 04/10/2008 em 13:19
fonte usuário

Respondeu 21/07/2010 em 16:25
fonte usuário

votos
2

Atualmente não - cada projeto usa um banco de dados, e cada aplicativo deve existir dentro dele. Se você quer ter um banco de dados específico do aplicativo, você não pode fazê-lo através do Django ORM. Veja a página de wiki Django no banco de dados apoio múltipla .

Respondeu 03/10/2008 em 19:35
fonte usuário

votos
0

Isso não é possível ainda, mas há rumores de que o wiki, Suporte múltiplo banco de dados no Django . Ele também foi criado durante a palestra sobre o futuro do Django no DjangoCon 2008 e fez uma das questões de maior prioridade.

Respondeu 03/10/2008 em 19:46
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more