[google_plusone size=”standard”] Estou testando o módulo Django MongoDB Engine, um backend para Django bastante completo.
O grande diferencial desse módulo é permitir uma integração total e transparente do Django com o MongoDB, inclusive trabalhando no models da mesma forma que em um banco relacional. Além disso, o módulo também permite utilizar GridFS, Map Reduce, Agregadores e _Atomic Updates_ em apps do Django, mantendo total compatibilidade com Admin, Sessões e Autenticação padrão do Django.
Como ainda não existe uma solução oficial para trabalhar com NoSQL no Django, esse módulo — até agora — é o mais completo e parece bastante estável. Ainda não instalei em aplicações em produção, mas ao realizar testes em laboratório, o módulo promete ter um grande potencial.
Instalação
A recomendação inicial é utilizar virtualenv, pelo fato do módulo ser recente e estar em constante desenvolvimento. É necessário instalar algumas dependências, como Django-Nonrel e Djangotoolbox. Fiz a instalação seguindo o próprio manual do módulo, que sugere pegar esses módulos diretamente de seus repositórios, mas acredito que também funciona utilizando o pip install.
Com o ambiente virtualenv já criado e o Django já instalado, o primeiro passo é instalar o Django-Nonrel direto do repositório Mercurial:
$ hg clone http://bitbucket.org/wkornewald/django-nonrel $ cd django-nonrel && python setup.py install
Depois, instalamos o módulo Djangotoolbox:
$ hg clone http://bitbucket.org/wkornewald/djangotoolbox $ cd djangotoolbox && python setup.py install
E por último, vamos instalar o módulo Django MongoDB Engine, esse último, buscando do repositório Git:
$ git clone https://github.com/django-mongodb-engine/mongodb-engine $ cd mongodb-engine && python setup.py install
Alterações no settings.py
Depois de instalar os módulos acima, basta alterar o backend no settings.py para trabalhar com o MongoDB. O meu ficou da seguinte forma:
DATABASES = { 'default': { 'ENGINE': 'django_mongodb_engine', 'NAME': 'testedjango', } }
Depois disso é só trabalhar normalmente! No caso acima, a base de dados será a “testedjango”, os parâmetros de host, user, password são opcionais.
Em um teste simples, após seguir todos os procedimentos acima, rode um syncdb e depois entre no shell do Mongo. Poderá notar que o banco “testedjango” foi criado e as collections básicas para trabalhar com Django.
Vou realizar testes mais pesados com o módulo e publicarei posts mais completos a respeito.
Para maiores informações, o site oficial do projeto é http://django-mongodb.org/