2

データベースのテーブルの列名を変更し、django-graphene の古いフィールドを廃止し、新しいフィールドを追加したいと考えています。

Django モデルで同じ列を 2 回作成せずにこれを行うにはどうすればよいですか? これを行っている間、システムチェック中のエラーを回避できますが、テストでエラーが発生します。

モデル

class MyModel(BaseModel):
    my_column = models.CharField(
        max_length=255, blank=True, null=True)
    mycolumn = models.CharField(
        max_length=255, blank=True, null=True
        db_column='my_column')

スキーマ

class MyNode(DjangoObjectType):
    mycolumn = String(deprecation_reason='Deprecated')

設定

SILENCED_SYSTEM_CHECKS = ['models.E007']

これは機能しますが、サンプルMyModelファクトリ インスタンスを作成するテストを実行しようとしています。

class TestMyModel(TestModelBase):
    def setUp(self):
        self.my_model = MyModel(my_model_nm='Some model')

もちろん、これは例外をスローします。

django.db.utils.ProgrammingError: column "my_column" specified more than once

私はこれについて間違っているようです。django-graphene のフィールド名を変更し、古い名前を廃止し、新しいフィールドがテーブル内の同じ列を参照するようにするにはどうすればよいですか?

グラフェン==1.2

グラフェン-ジャンゴ==1.2.1

graphql-core==1.0.1

4

1 に答える 1