0

外部ライブラリの一部としてインストールされたテーブルがいくつかあります。これらのテーブルには、高速化のためにインデックスを作成する必要があるフィールドがあります。データベース コマンド ラインを使用してインデックスを作成できますが、django にインデックス作成自体を行うように指示したいのですが、ライブラリにパッチを適用して維持する必要はありません。それらのモデルの外部のソース ファイルで Django にそのフィールドにインデックスを付けるように指示する簡単な方法はありますか?

4

1 に答える 1

0

私はモデルとそれぞれのデータ テーブルを管理するために south を使用しています。テーブルがすべて同じデータベース上にあると仮定すると、これが私のアプローチになると思います。(そうでない場合、真の解決策はありません。おそらく、Django に対するこの制限を回避するハックアップされた方法を探す価値はありません。)

$ python manage.py startapp data_models
$ python manage.py inspectdb > inspectdb.py

これらの 2 つの手順により、データベース内のすべてのテーブルを表すモデルを含むファイルが作成されます。操作するデータ テーブルのモデルをファイルにコピーinspectdb.pydata_models\models.pyます。コピーしたモデルを必要に応じて微調整します。次に、南があると仮定します。

$ python manage.py convert_to_south data_models
$ python manage.py migrate data_models

これで、これらのデータ テーブルの django プロジェクト内にアクティブなモデルができました。最後に、必要な ForeignKey 関係をまだ設定していない場合は設定します。モデルのいずれかを変更した場合は、通常のサウス アップデート ダンスを実行します。

$ python manage.py schemamigration [app-with-changed-models] --auto
$ [repeat above as necessary]
$ python manage.py migrate
于 2013-02-20T18:14:41.157 に答える