我一直插科打諢與Django和Django的ORM在家裏,我不得不說,我覺得它是在易用性方面的最好的了一個。是否可以從數據庫生成django模型?
不過,我想知道是否有可能在「反向」來使用它。
基本上我想做的是從現有的數據庫模式(從不使用Django和是很老的一個項目)產生的Django模型。
這可能嗎?
更新:有問題的數據庫是Oracle
我一直插科打諢與Django和Django的ORM在家裏,我不得不說,我覺得它是在易用性方面的最好的了一個。是否可以從數據庫生成django模型?
不過,我想知道是否有可能在「反向」來使用它。
基本上我想做的是從現有的數據庫模式(從不使用Django和是很老的一個項目)產生的Django模型。
這可能嗎?
更新:有問題的數據庫是Oracle
是,使用inspectdb
命令:
inspectdb
內省的databa se數據庫中由DATABASE_NAME設置指向的表,並將Django模型模塊(models.py文件)輸出到標準輸出。
使用這個,如果你有,你想使用Django舊的數據庫。該腳本將檢查數據庫併爲其中的每個表創建一個模型。
正如你所期望,所創建的車型將有表中的每個字段的屬性。需要注意的是inspectdb在其字段名輸出一些特殊情況:
[...]
(Django的1.7.1)只需運行python manage.py inspectdb
將在數據庫中創建的所有表類和顯示上安慰。
$ python manage.py inspectdb
保存此通過使用標準的Unix輸出重定向文件:
$ python manage.py inspectdb > models.py
(這爲我的作品與MySQL和Django的1.9)
我已經根據Django的可重複使用的應用程序inspectdb命令實用程序, Django Inspectdb Refactor。
這打破車型到不同的文件夾的模型內從現有的數據庫。 這有助於在模型變大時管理模型。
您可以通過畫中畫安裝:
pip install django-inspectdb-refactor
然後在設置註冊的應用程序。PY作爲inspectdb_refactor
這之後您可以使用它的命令行:
python manage.py inspectdb_refactor --database=your_dbname_defined_in_settings --app=your_app_label
這將成功地創建模型文件夾中的所有表爲您的應用程序內不同的模型文件。
完美,謝謝! – 2009-07-24 18:55:57
閱讀這些信息,它表示它支持mysql,sqlite和postgresql。可悲的是我試圖使用的數據庫是Oracle :( – 2009-07-24 19:01:00