2011-08-02 21 views
0

我有一個想法,在實現之前我想拋出它來獲得一些反饋,甚至發現有人已經完成。使用Django測試來分析和修復數據庫的數據

這是事情:我有一個網站運行着一個數據庫,這個數據庫在幾個月裏增長得非常快,而且在發生的幾個問題上,充斥着大量的垃圾。我正在考慮放置一些腳本來運行數據庫並清理混亂。所以,我的想法是使用Django測試,這樣一來,人們就可以編寫大量小型簡單測試,除了提高標誌而不是提升標誌外,實際上會修復這些問題。

你們認爲什麼?我無法以任何理由認爲這是行不通的。但我在Django中並沒有那麼豐富。會不會很難?任何可預見的問題?

謝謝!

回答

3

不,從許多方面來看,這是一個糟糕的主意,從設計角度到實施問題。只提幾個:

  1. 測試不會在實際的數據庫上運行。從頭創建一個單獨的數據庫。你必須破解這個。
  2. 通常,每個觸及db的測試用例都運行在事務中,然後回滾。所以最後數據庫根本沒有改變。 Ofc你也可以避免這一點,但那不是重點。
  3. 當你改變某些東西時,測試應該始終運行。但是,你所談論的那種問題應該只是一次性修復(主要)

但有你想要做的事情非常簡單和合適的解決方案:

  1. 安裝South
  2. 修正錯誤會導致不正確/不想要的數據。
  3. 編寫data migration修復/清理已經存在的「損壞」的數據。
  4. 更新和遷移。
  5. 重複2-5

現在,這是唯一的一次修正,但在大多數情況下,這是做了正確的道路。您修復導致數據問題的錯誤,並修復數據。

如果您確實需要相同的數據更改功能(定期)運行多次,那麼您可以創建custom management command(或者只是一個簡單的可執行python腳本)並安排它從cron運行。

相關問題