123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- =========================================
- Integrating Django with a legacy database
- =========================================
- While Django is best suited for developing new applications, it's quite
- possible to integrate it into legacy databases. Django includes a couple of
- utilities to automate as much of this process as possible.
- This document assumes you know the Django basics, as covered in the
- :doc:`tutorial </intro/tutorial01>`.
- Once you've got Django set up, you'll follow this general process to integrate
- with an existing database.
- Give Django your database parameters
- ====================================
- You'll need to tell Django what your database connection parameters are, and
- what the name of the database is. Do that by editing the :setting:`DATABASES`
- setting and assigning values to the following keys for the ``'default'``
- connection:
- * :setting:`NAME`
- * :setting:`ENGINE <DATABASE-ENGINE>`
- * :setting:`USER`
- * :setting:`PASSWORD`
- * :setting:`HOST`
- * :setting:`PORT`
- Auto-generate the models
- ========================
- .. highlight:: bash
- Django comes with a utility called :djadmin:`inspectdb` that can create models
- by introspecting an existing database. You can view the output by running this
- command::
- python manage.py inspectdb
- Save this as a file by using standard Unix output redirection::
- python manage.py inspectdb > models.py
- This feature is meant as a shortcut, not as definitive model generation. See the
- :djadmin:`documentation of inspectdb <inspectdb>` for more information.
- Once you've cleaned up your models, name the file ``models.py`` and put it in
- the Python package that holds your app. Then add the app to your
- :setting:`INSTALLED_APPS` setting.
- Install the core Django tables
- ==============================
- Next, run the :djadmin:`syncdb` command to install any extra needed database
- records such as admin permissions and content types::
- python manage.py syncdb
- Test and tweak
- ==============
- Those are the basic steps -- from here you'll want to tweak the models Django
- generated until they work the way you'd like. Try accessing your data via the
- Django database API, and try editing objects via Django's admin site, and edit
- the models file accordingly.
|