Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да обединим два django модела (таблици) в един модел (таблица)

Персонализираните миграции трябва да работят.

  1. Вече имате модели A и B, така че създайте модел C с полетата, които искате от двата модела.
  2. Направете нормална миграция на схема, напр. manage.py makemigrations ... и кандидатствайте за всички съществуващи промени
  3. Създайте персонализирана миграция, напр. python manage.py makemigrations --empty yourappname (вижте връзката, споделена от @2ps
  4. Редактирайте файла, генериран по-горе, добавих примерна миграция на данни по-долу.
  5. rum manage.py migrate, за да приложите миграцията от стъпка 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да намерите съпоставянето в MySQL

  2. SQL скриптове - Съществува ли еквивалент на #define?

  3. Как да проверите датите на период от време се намират между две дати в mysql заявката

  4. Drupal hook_submit запис в db

  5. Конкатениране на полета от редове със същия идентификатор в MySQL