Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Cara menggabungkan dua model Django (tabel) menjadi satu model (tabel)

Migrasi khusus akan berfungsi.

  1. Anda sudah memiliki model A dan B, jadi buat model C dengan kolom yang Anda inginkan dari kedua model tersebut.
  2. Buat migrasi skema normal mis. manage.py makemigrations ... dan ajukan perubahan yang ada
  3. Buat migrasi khusus, mis. python manage.py makemigrations --empty yourappname (lihat tautan yang dibagikan oleh @2ps
  4. Edit file yang dihasilkan di atas, saya telah menambahkan contoh migrasi data di bawah.
  5. rum manage.py migration untuk menerapkan migrasi dari langkah 4 di atas.
  6. Jatuhkan model A dan B jika itu keinginan Anda, buat migrasi dan terapkan dan Anda akan menjadi baik.

    ...

    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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara membuat database dengan Liquibase

  2. Cara membuat tabel Pivot di Laravel

  3. Database kosong di MySQL dan PHP?

  4. Hasil kueri MySql sepanjang hari

  5. sqlalchemy:urutan hasil kueri tidak terduga