До Django 1.7 я использовал для определения fixtures
каталога для каждого проекта в настройках:Как создать для каждого проекта initial_data светильников в Django 1.7+
FIXTURE_DIRS = ('myproject/fixtures',)
и использовать, чтобы поместить мое initial_data.json
приспособление хранения по умолчанию группы, необходимые для всего проекта. Это хорошо работает для меня, так как я могу сохранить дизайн чистым, разделив данные для каждого проекта из конкретных приложений.
Теперь с Django 1.7, initial_data
светильники устарели, suggesting включить data migrations вместе с миграцией схемы приложения; не оставляя очевидного выбора для глобальных исходных данных для каждого проекта.
Кроме того, новый migrations framework устанавливает все стандартные начальные данные, светильники перед исполняющих миграции для совместимых приложений (в том числе django.contrib.auth
приложения). Это приводит к тому, что мой прибор, содержащий группы по умолчанию, составляет сбой установки, так как таблица auth_group
еще не указана в БД.
Любые предложения о том, как (изящно) сделать светильники после всех миграций или, по крайней мере, после миграции приложений через приложение? Или любые другие идеи для решения этой проблемы? Я нахожу приспособления отличным способом для предоставления исходных данных и хотел бы иметь простой и чистый способ объявить их для автоматической установки. Новый RunPython просто слишком громоздкий, и я считаю его излишним для большинства целей; и, по-видимому, он доступен только для миграции приложений.
Поскольку это устарело, это, вероятно, будет немного неудобно. Один из вариантов может заключаться в создании минимального приложения для загрузки только исходных данных, создания переноса и в RunPython, для вызова любых функций, которые Django использует для загрузки светильников. Таким образом, вы также можете указать зависимости в своей миграции. Вероятно, это связано с серьезными копаниями в исходном коде Django. –
Да, я хоть и создаю какое-то приложение * meta * в качестве последнего средства и создаю там миграции (но это все еще некрасиво). Подумайте, почему новый Django, по крайней мере, не предоставляет стандартный способ ** декларативно ** задавать приборы, которые будут загружаться вместе с новыми Migrations. –
Где-то на SO было предложено повторно использовать файлы артефактов pre-1.7 json/xml. У вас будет минимальное приложение с переносом данных, а затем проанализируйте существующие существующие json/xml-инструменты и создайте записи из них. Это должно быть то, что произошло до-1.7 в любом случае. – 2014-10-09 09:04:57