Использование теста Django для анализа и восстановления данных базы данных - PullRequest
0 голосов
/ 02 августа 2011

У меня была идея, и перед ее внедрением я хотел бы высказать ее, чтобы получить обратную связь или даже обнаружить, что кто-то уже сделал.он растет довольно быстро, и за несколько месяцев, а также из-за нескольких проблем, возникших в результате этого, появилось много мусора.Я думал о том, чтобы поставить несколько скриптов, чтобы запустить базу данных и навести порядок.Итак, моя идея заключалась в том, чтобы использовать тесты Django таким образом, чтобы можно было написать большую сумму небольших простых тестов, которые бы выполняли именно это, за исключением того, что вместо того, чтобы поднимать флаг, на самом деле все исправляли.вы, ребята, думаете?Я не могу думать ни по какой причине, почему это не сработает.Но я не такой опытный в Джанго.Будет ли это трудно?Любая предсказуемая проблема?

Спасибо!

1 Ответ

3 голосов
/ 02 августа 2011

Нет, это плохая идея по многим причинам, начиная с точки зрения проектирования и заканчивая вопросами реализации. Просто упомянуть несколько:

  1. Тесты не выполняются в реальной базе данных. Для него создается отдельная база данных. Тебе придется взломать это.
  2. Обычно каждый тестовый случай, который касается БД, выполняется в транзакции, а затем откатывается. Таким образом, в итоге БД не изменилась вообще. Конечно, этого тоже можно избежать, но дело не в этом.
  3. Тесты должны выполняться все время, когда вы что-то меняете. Но проблемы, о которых вы говорите, должны быть единовременными (в основном).

Но есть очень простое и подходящее решение для того, что вы хотите сделать:

  1. Установить Юг
  2. Исправлена ​​ошибка, приводящая к неверным / нежелательным данным.
  3. Запись миграция данных , которая исправляет / очищает уже существующие «испорченные» данные.
  4. Обновление и миграция.
  5. Повтор 2-5

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...