私はDjangoとDjango= ORMを自宅でいじくり回してきましたが、私はそれが最高の1つだと感じています使いやすさという点で。
しかし、「リバース」で使用できるかどうか疑問に思っていました。
基本的には、既存のデータベーススキーマ(Djangoを使用せず、かなり古いプロジェクト)からモデルを生成しますDjango)です。
これは可能ですか?
更新:問題のデータベースはOracle
はい、inspectdb
コマンドを使用します。
inspectdb
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経由でインストールできます:
pip install Django-inspectdb-refactor
次に、アプリをsettings.pyにinspectdb_refactor
として登録します
この後、コマンドラインから次のように使用できます。
python manage.py inspectdb_refactor --database=your_dbname_defined_in_settings --app=your_app_label
これにより、すべてのテーブルを含むモデルフォルダーがアプリ内の異なるモデルファイルとして正常に作成されます。例えば:
詳細については、こちらをご覧ください こちら