Являются ли django fixtures надежной резервной копией базы данных? - PullRequest
5 голосов
/ 24 мая 2011

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

Спасибо.

Ответы [ 2 ]

4 голосов
/ 24 мая 2011

Светильники предназначены для размещения данных, которые должны быть введены в базу данных после добавления новой модели / всего приложения.Это действительно для неизбежного перемещения вашего кода из разработки в производство, когда вам понадобятся эти же данные сразу после синхронизации базы данных.

Теперь, основываясь на этой функции, вы, вероятно, можете создать базовое устройство, состоящее изпо сути, резервное копирование базы данных, но это не совсем то, для чего предназначены приспособления.

Лучше всего придерживаться стандартной практики хранения согласованных и частых резервных копий SQL вашей базы данных с помощью cron или других расписаний.приложение.

0 голосов
/ 08 ноября 2013

Использование приборов в качестве резервной копии БД будет работать до тех пор, пока ваша БД мала.Проблема со светильниками заключается в том, что их выгрузка и загрузка занимают много времени.Если ваши модели и приложения постоянно меняются, это означает, что каждый syncdb должен перезагрузить ВСЕ ваши данные для всех ваших приложений.Вы можете избежать этого, не помещая их в каталог fixtures.И тогда вам придется выборочно (вручную) загружать необходимые вам приборы при смене их моделей.Поэтому для больших баз данных или проектов, в которых ваши модели постоянно меняются, гораздо лучше использовать south для управления миграциями и предотвращения перезагрузок базы данных, независимо от того, сохраняете ли вы свои резервные копии в фиксаторах или дампах sql.

Ив django 1.4 datadump и dataload были бы невозможны, если только данные для каждой из ваших моделей (таблиц) не могли поместиться в ОЗУ полностью, что означает, что вы, вероятно, не будете использовать постоянное хранилище для вашей базы данных в любом случае.

Например, если вы используете подход Криса Патта, а ваша база данных - postgres, для меня pg_dumpall занимает менее 30 секунд в базе данных 6 ГБ.datadump произвёл бы замену в течение нескольких часов, если у вас недостаточно оперативной памяти.

...