Как автоматически добавить повторяющиеся миграции данных в Django с помощью Djangos ORM?

Я новичок в Django и прочитал базовый и продвинутый учебник, а также некоторые части документации по миграциям и миграциям данных: https://docs.djangoproject.com/en/4.0/topics/migrations/#data-migrations Также я читал о фикстурах, но это, кажется, подходит только для начального предоставления данных: https://docs.djangoproject.com/en/4.0/howto/initial-data/#providing-data-with-fixtures

Задача, которую я хочу решить - массовая многократная вставка данных "извне" чистым способом с использованием Djangos ORM и всех преимуществ миграций. Пока что я не нашел полноценного примера, как это сделать, потому что использование первого варианта миграции данных потребует обращения к файлу каждый раз, когда я вставляю/мигрирую новые данные.

Есть подсказки, как этого добиться, или я чего-то не понимаю?

Заранее спасибо!

Вы можете создать пустую миграцию с помощью

python manage.py makemigrations --empty yourappname

Затем определите несколько функций с данными, которые вы хотите заполнить, следующим образом:

from django.db import migrations

def create_estado(apps, schema_monitor):
    '''
    Create estado of empaque
    '''
    Estado = apps.get_model('empaques_app', 'Estado_empaque')

    Estado.objects.create(nombre='Bueno')
    Estado.objects.create(nombre='Dañado')
    Estado.objects.create(nombre='Reparando')

class Migration(migrations.Migration):

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

    operations = [
        migrations.RunPython(create_estado)
    ]

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

Вернуться на верх