Лучший способ повторного использования кода из старой миграции данных в новой миграции данных
Несколько месяцев назад я написал пользовательскую миграцию данных, которая создавала некоторые объекты модели. Я написал функцию внутри файла миграции, create_data, а затем для операции миграции запустил ее, используя RunPython
operations = [
migrations.RunPython(create_data)
]
Теперь у нас есть еще один объект, который должен автоматически заполняться миграциями. Я хотел бы повторно использовать функцию create_data, но в новой миграции. Проблема в том, что я не знаю, смогу ли я правильно импортировать ее, или импорт из предыдущей миграции - плохая идея.
create_data = __import__('projects.project.migrations.0012_auto_20210331_2126').create_data
Это не работает, но в любом случае я думаю, что есть проблемы с импортом из файлов, начинающихся с цифр, которые делают это странным. Другая идея, которая у меня есть - это скопировать эту функцию в одно из моих обычных приложений django, где есть многократно используемый код, тогда я смогу импортировать его как обычно и использовать в будущих миграциях без проблем. Недостатком является то, что код все равно будет скопирован один раз.
Как мне повторно использовать мой старый код из старой миграции в новой миграции? Есть ли хороший способ импортировать его, или я должен просто скопировать его в более подходящее место и никогда больше не вставлять логику в файлы миграции?