2016-05-06 2 views
3

db_index = Falseでフィールドを定義しない限り、Djangoは外部キーのインデックスを自動的に生成することを知っています。 私はそれを読んでいますdjango docDjangoは外部キー列に対してインデックスを自動的に作成する方法をどのように指定しますか?

しかし、私はそれがインデックス名を選択することが可能かどうか、またはdjangoがそれを選ぶ方法はわかりません。

「tablename_xxxxxx」のようなものです。

"xxxxx"はランダムな文字ですか?

EDITED: 、私は「xxxxは」モデルフィールド名からいくつかの成文化であることを発見しましたが、私はまだ私達が私の知る限りでは、明示的な名前に

+0

は、_ibfk_1のようなxxxの部分ですか? – Mihai

+0

私の実際のケースでは、完全なインデックス名はtablename_dbaea34eですが、これらの文字は私には意味がありません – toscanelli

答えて

1

を選択できるかどうかわかりませんインデックスの名前を選択する方法はありません。実際には動的に計算され、テーブル名とカラム名のハッシュを意味します。

たとえば、code source hereを参照してください.Djangoの特定のバージョンであっても、私はindexという名前のユーザーの変更について認識していません。

+0

良い答え+1 1 – e4c5

+0

私は時間を別の解決策を探すのに費やすことができます。ありがとう。 – toscanelli

1

インデックス名を選択することはできますか?はい、そうすることには何のメリットもありません。

最初の手順は、constraintをオフにしてから、マイグレーションの形式で手動でマイグレーションに追加する必要があります.RunSQL はい、これは大変な作業であり、まったく価値がありません。

+1

私はこの解決策については考えていませんでしたが、あなたは本当に大変です。ポイントは、作成したFKの名前を変更した後、古いものと同じ名前(偶然にも)のFKを追加しました。Djangoは既に作成されたインデックスを作成しようとしていました。明らかにリモートケースであり、それには他の解決策がありますが、私は不思議でした。 +1 – toscanelli

関連する問題