| ================================== |
| Integrating 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 |
| `official tutorial`_. |
| |
| .. _official tutorial: ../tutorial1/ |
| |
| 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 these settings in your |
| `settings file`_: |
| |
| * `DATABASE_NAME` |
| * `DATABASE_ENGINE`_ |
| * `DATABASE_USER`_ |
| * `DATABASE_PASSWORD`_ |
| * `DATABASE_HOST`_ |
| * `DATABASE_PORT`_ |
| |
| .. _settings file: ../settings/ |
| .. _DATABASE_NAME: ../settings/#database-name |
| .. _DATABASE_ENGINE: ../settings/#database-engine |
| .. _DATABASE_USER: ../settings/#database-user |
| .. _DATABASE_PASSWORD: ../settings/#database-password |
| .. _DATABASE_HOST: ../settings/#database-host |
| .. _DATABASE_PORT: ../settings/#database-port |
| |
| Auto-generate the models |
| ======================== |
| |
| Django comes with a utility that can create models by introspecting an existing |
| database. You can view the output by running this command:: |
| |
| django-admin.py inspectdb --settings=path.to.settings |
| |
| Save this as a file by using standard Unix output redirection:: |
| |
| django-admin.py inspectdb --settings=path.to.settings > models.py |
| |
| This feature is meant as a shortcut, not as definitive model generation. See |
| the `django-admin.py documentation`_ 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 |
| ``INSTALLED_APPS`` setting. |
| |
| .. _django-admin.py documentation: ../django_admin/ |
| |
| Install the core Django tables |
| ============================== |
| |
| Next, run the ``manage.py syncdb`` command to install any extra needed database |
| records such as admin permissions and content types:: |
| |
| django-admin.py init --settings=path.to.settings |
| |
| See whether it worked |
| ===================== |
| |
| That's it. Try accessing your data via the Django database API, and try editing |
| objects via Django's admin site. |