sql >> Databasteknik >  >> RDS >> Mysql

Hur man slår samman två django-modeller (tabeller) till en modell (tabell)

En anpassad migrering borde fungera.

  1. Du har redan modellerna A och B, så skapa modell C med de fält du vill ha från de två modellerna.
  2. Gör en normal schemamigrering, t.ex. manage.py makemigrations ... och ansöka om befintliga ändringar
  3. Skapa en anpassad migrering, t.ex. python manage.py makemigrations --töm ditt appnamn (se länk som delas av @2ps
  4. Redigera filen som skapats ovan, jag har lagt till ett exempel på datamigrering nedan.
  5. rum manage.py migrera för att tillämpa migreringen från steg 4 ovan.
  6. Släpp modell A och B om det är din önskan, generera migreringen och ansök så borde du vara bra.

    ...

    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. Varför börjar tabellnamn i SQL Server med dbo?

  2. Hur man korrekt anropar fnd_concurrent.wait_for_request lagrad funktion via cx_Oracle module API?

  3. Hitta lediga rum (bokningssystem)

  4. Behöver konvertera kolumner till rader i MYSQL