Is it possible to generate django models from the database?

TM. picture TM. · Jul 24, 2009 · Viewed 53.3k times · Source

I've been messing around with Django and the Django ORM at home, and I've got to say, I feel it is one of the best out there in terms of ease of use.

However, I was wondering if it was possible to use it in "reverse".

Basically what I would like to do is generate Django models from an existing database schema (from a project that doesn't use django and is pretty old).

Is this possible?

Update: the database in question is Oracle

Answer

ars picture ars · Jul 24, 2009

Yes, use the inspectdb command:

inspectdb

Introspects the database tables in the database pointed-to by the DATABASE_NAME setting and outputs a Django model module (a models.py file) to standard output.

Use this if you have a legacy database with which you'd like to use Django. The script will inspect the database and create a model for each table within it.

As you might expect, the created models will have an attribute for every field in the table. Note that inspectdb has a few special cases in its field-name output:

[...]