Create an account

Very important

  • To access the important data of the forums, you must be active in each forum and especially in the leaks and database leaks section, send data and after sending the data and activity, data and important content will be opened and visible for you.
  • You will only see chat messages from people who are at or below your level.
  • More than 500,000 database leaks and millions of account leaks are waiting for you, so access and view with more activity.
  • Many important data are inactive and inaccessible for you, so open them with activity. (This will be done automatically)


Thread Rating:
  • 313 Vote(s) - 3.52 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Is it possible to generate django models from the database?

#1
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
Reply

#2
Yes, use the `inspectdb` command:

*

[To see links please register here]


> 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:
>
> [...]

Reply

#3
(Django 1.7.1) Simply running `python manage.py inspectdb` will create classes for all tables in database and display on console.

$ python manage.py inspectdb

Save this as a file by using standard Unix output redirection:

$ python manage.py inspectdb > models.py

(This works for me with mysql and django 1.9)
Reply

#4
I have made a reusable app based on django's inspectdb command utility,
[Django Inspectdb Refactor][1].

This breaks models into different files inside models folder from a existing database.
This helps managing models when they become large in number.


You can install it via pip:

pip install django-inspectdb-refactor

Then register the app in settings.py as `inspectdb_refactor`

After this you can use it from command line as :

python manage.py inspectdb_refactor --database=your_dbname_defined_in_settings --app=your_app_label

This will successfully create models folder with all the tables as different model files inside your app. For example:

[![typical structure][2]][2]

More details can be found [here.][3]


[1]:

[To see links please register here]

[2]:

[3]:

[To see links please register here]

Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)

©0Day  2016 - 2023 | All Rights Reserved.  Made with    for the community. Connected through