Multiples Bases de datos en Django ya apuntito

En la rama de código multidb se está terminando de implementar la
posibilidad de conectar múltiples bases de datos.

Por la pinta que tiene el movimiento en el SVN, donde ya están limpiando
ficheros y haciendo los últimos merges de trunk/ a multidb/, parece que
se acerca el merge contrario, es decir, de multidb/ a trunk/.

Aunque aún podemos usar la forma clásica (hasta la versión 1.4, donde se
proclamaría incompatible hacia atrás), vamos a introducir un poco como
sería...

El settings cambiaría de los parámetros DATABASE_* al siguiente:

DATABASES = {
    'default': {
       'NAME': 'foodb',
       'BACKEND': 'django.db.backends.postgresl_psycopg2',
       'HOST': 'masterdb.foodb.com',
    }
    'slave1': {
       'NAME': 'foodb',
       'BACKEND': 'django.db.backends.postgresl_psycopg2',
       'HOST': 'slavedb1.foodb.com',
    }
}

Las consultas serían de este estilo:

>>> qs1 = FooModel.objects.all() # el de siempre
>>> qs2 = FooModel.objects.filter(status='published').using('slave1') #
usando la base de datos secundaria

Las manipulaciones serían así:

>>> content.save() # guarda en "default"
>>> content.save(using='slave1')
>>> content.delete(using='slave1')


Para más información:

http://code.djangoproject.com/browser/django/branches/soc2009/multidb/docs/to...