I basically want to take an existing mysql database structure created and used by a php app (codeigniter framework) and reverse engineer it to a django app. is there some tool to do this? south migrations maybe?
Asked
Active
Viewed 1.1k times
1 Answers
60
Create a project, and point your settings @ your database
Then run
./manage.py inspectdb
This will print out a python models file for the DB you're pointing at
You can output this to a file by doing something like
./manage.py inspectdb > models.py
And then you can move the file to the most suitable location, and edit it as needed.

Mez
- 24,430
- 14
- 71
- 93
-
2Good answer. Chapter 18 of the Django Book has further details on using inspectdb to integrate existing databases - http://djangobook.com/en/2.0/chapter18/ – Alasdair Oct 09 '09 at 21:26
-
1Great this is what i wanted exactly!, also going to generate the er diagram based on this using graphviz & django_extensions – Rasiel Oct 09 '09 at 22:06
-
2Make sure you check the generated `model.py` carefully! In particular lengths of `CharField`s and missing `ForeignKey`s was the problem cases last time I used it. It saved many hours of making the `model.py` by hand though. – Nick Craig-Wood Oct 10 '09 at 13:34