Added docs on how syncdb and other management commands interact with multi-db.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@12116 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Russell Keith-Magee 2010-01-07 11:37:49 +00:00
parent 1d18f324f1
commit b7fa3e8c35
1 changed files with 33 additions and 0 deletions

View File

@ -51,6 +51,39 @@ If you attempt to access a database that you haven't defined in your
:setting:`DATABASES` setting then Django will raise a
``django.db.utils.ConnectionDoesNotExist`` exception.
Synchronizing your databases
============================
The :djadmin:`syncdb` management command operates on one database at a
time. By default, it operates on the ``default`` database, but by
providing a :djadminopt:`--database` argument, you can tell syncdb to
synchronize a different database. So - to synchronize all models onto
all databases in our example, you would need to call::
$ ./manage.py syncdb
$ ./manage.py syncdb --database=users
If you don't want every application to be synchronized onto a
particular database. you can specify the :djadminopt:`--exclude`
argument to :djadmin:`syncdb`. The :djadminopt:`--exclude` option
allows you to prevent a specific application or applications from
being synchronized. For example, if you don't want the ``sales``
application to be on the ``users`` database, you could run::
$ ./manage.py syncdb --database=users --exclude=sales
Alternatively, if you want fine grained control of synchronization,
you can pipe all or part of the output of :djadmin:`sqlall` for a
particular application directly into your database prompt.
Using other management commands
-------------------------------
The other ``django-admin.py`` commands that interact with the database
operate in the same way as :djadmin:`syncdb` -- they only ever operate
on one database at a time, using the :djadminopt:`--database` to control
the database that is used.
Selecting a database for a ``QuerySet``
=======================================