Один хороший способ сделать это - это светильники, особенно приспособления initial_data
.
Фиксатор - это набор файлов, которые содержат сериализованное содержимое базы данных. Таким образом, это похоже на создание резервной копии базы данных, но Django осознает, что ее проще использовать, и она принесет дополнительные преимущества, когда вы начнете выполнять такие вещи, как модульное тестирование.
Вы можете создать прибор из данных, которые в настоящее время находятся в вашей БД, используя django-admin.py dumpdata
. По умолчанию данные представлены в формате JSON, но доступны и другие параметры, такие как XML. Хорошее место для хранения приборов - это подкаталог fixtures
каталогов ваших приложений.
Вы можете загрузить прибор с помощью django-admin.py loaddata
, но, что более важно, если у вашего прибора есть имя, например initial_data.json
, оно будет автоматически загружено при выполнении syncdb
, что избавит вас от необходимости импортировать его самостоятельно.
Другое преимущество заключается в том, что при запуске manage.py test
для запуска модульных тестов во временную базу данных испытаний также загружается исходное исправление данных.
Конечно, это будет работать, когда вы добавляете атрибуты к моделям и столбцам в БД. Если вы удаляете столбец из базы данных, вам необходимо обновить свое устройство, чтобы удалить данные для этого столбца, что может быть непросто.
Это лучше всего работает при внесении множества небольших изменений в базу данных во время разработки. Для обновления рабочих баз данных лучше всего подойдет вручную сгенерированный сценарий SQL.