sql >> データベース >  >> RDS >> Mysql

2つのdjangoモデル(テーブル)を1つのモデル(テーブル)にマージする方法

    カスタム移行が機能するはずです。

    1. すでにモデルAとBがあるので、2つのモデルから必要なフィールドを使用してモデルCを作成します。
    2. 通常のスキーマ移行を行います。例: manage.pymakemigrations...そして既存の変更を申請します
    3. カスタム移行を作成します。例: python manage.py makemigrations --empty yourappname(@2psが共有するリンクを参照
    4. 上記で生成されたファイルを編集します。以下にサンプルのデータ移行を追加しました。
    5. rum manage.pyは、上記の手順4からの移行を適用するために移行します。
    6. 必要に応じてモデルAとBを削除し、移行を生成して適用すれば、問題はありません。

      ...

      def merge_models_ab(apps, schema_editor):
          A = apps.get_model("app_name", "A")
          B = apps.get_model("app_name", "B")
          C = apps.get_model("app_name", "C")
          #come up with some interesting ways to join A and B
          #iterate over join and insert into C
          #C.objects.create(...)
      

      ...

      class Migrations(migrations.Migration):
          dependencies = [
              ('app_name', 'some_prev_migrations'),
          ]
          operations = [
              migrations.RunPython(merge_models_ab),
          ]
      


    1. ODBCアドミニストレータがOracleTNSNamesファイルを見つけることができません

    2. DataSourceInitializerがSpringブート1.2で機能していません

    3. 交差するタイムスパンの平坦化

    4. Pythonツイストとデータベース接続