![]() |
Is it possible to generate django models from the database? - Printable Version +- 0Day Forums (https://0day.red) +-- Forum: Coding (https://0day.red/Forum-Coding) +--- Forum: Database (https://0day.red/Forum-Database) +--- Thread: Is it possible to generate django models from the database? (/Thread-Is-it-possible-to-generate-django-models-from-the-database) |
Is it possible to generate django models from the database? - intarsiate672075 - 07-20-2023 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 RE: Is it possible to generate django models from the database? - Sirjennierpmjwaurqg - 07-20-2023 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: > > [...] RE: Is it possible to generate django models from the database? - preaction659651 - 07-20-2023 (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) RE: Is it possible to generate django models from the database? - chelseaznybv - 07-20-2023 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] |