2011-08-08 9 views
0

DBダンプを取っている間に異なるテーブルからフィールドを除外する方法はありますか?モデルを完全に除外することしかできませんでした。 (私はpostgresqlを使用しています)。どんな助けも高く評価されています。 ありがとうございます。djangoの複数のフィールドをdatadumpから除外する

答えて

0

簡単にはありません。私はDjangoソースからdumpdata.pyのコピーを取得し、あなたのプロジェクトに入れてそれをカスタマイズします。ダンプのためにカスタムマネージャーを使用するか、app.model.fieldをサポートするために除外を拡張するためにそれを拡張するのは難しくありません。

これは一般的に便利な拡張機能のようです。

+0

申し訳ありませんが、私はちょうど南に出てきました。私はそれが助けになると思います。 –

+0

はい。移行がデータダンプを行っている理由であれば、必ず南を使用してください! –

+0

返事ありがとう –

0

フィールドのサブセットで新しいモデルを定義し、db_tableフィールドをMetaに上書きすることが考えられます。

共通の抽象的な親モデルを使用して共通フィールドを定義する繰り返しを避けることもできます。このアプローチの

class CommonBase(models.Model): 
    class Meta: 
     abstract = True 

class ModelX(CommonBase): 
    pass 

class SubsmetOfModelX(CommonBase): 
    class Meta: 
     managed = False 
     db_table = 'app_label_modelx' 

欠点があるかもしれない:

  • 常にそうdumpdataが重複するオブジェクトが含まれます、dumpdata中に上記2の少なくとも一つのモデルを除外する必要があります。
  • loaddataSubsetOfModelXの場合、サブセットモデルにないModelXにはnull=Falseフィールドがあると失敗します。
関連する問題