Предварительный выбор данных для миграции в базу данных - PullRequest
0 голосов
/ 29 мая 2018

Можно ли в Django заполнить базу данных несколькими записями во время миграции или после нее, кроме ручного метода, или восстановить резервную копию.

Например: у меня есть модель со службами, который после создания базы данных уже должен иметь 3 записи, потому что это связыватель.

Как мне реализовать это в Django 2.x?

1 Ответ

0 голосов
/ 29 мая 2018

Из документации django по Миграции данных

Django не может автоматически генерировать миграции данных для вас, как это происходит с миграциями схемы, но написать их несложно,Файлы миграции в Django состоят из Operations, и основной операцией, которую вы используете для миграции данных, является RunPython.

Пример

 from django.db import migrations

 def combine_names(apps, schema_editor):
     # We can't import the Person model directly as it may be a newer
     # version than this migration expects. We use the historical version.
     Person = apps.get_model('yourappname', 'Person')
     for person in Person.objects.all():
         person.name = '%s %s' % (person.first_name, person.last_name)
         person.save()

 class Migration(migrations.Migration):

     dependencies = [
         ('yourappname', '0001_initial'),
     ]

     operations = [
         migrations.RunPython(combine_names),
     ]
...