0

私にはアイデアがあり、実装する前にそれを投げ出してフィードバックを得たり、誰かがすでに実行していることを発見したりしたいと思います.

ここに問題があります。私は、非常に急速に数か月にわたって成長しているデータベースで実行されている Web サイトを持っています。発生したいくつかの問題で、大量のゴミでいっぱいになりました。データベース全体で実行して混乱を解消するためのスクリプトをいくつか用意することを考えていました。したがって、私の考えは、Django テストを使用することでした。これは、フラグを立てる代わりに実際に問題を修正することを除いて、まさにそれを行う小さな単純なテストを大量に作成する方法でした。

皆さんはどう思いますか?これがうまくいかない理由は考えられません。しかし、私は Django に慣れていません。難しいでしょうか?予見可能な問題はありますか?

ありがとう!

4

1 に答える 1

3

いいえ、これは、設計の観点から実装の問題まで、多くの理由で悪い考えです。いくつか言及するだけです:

  1. テストは実際のデータベースでは実行されません。そのための別のデータベースがゼロから作成されます。これをハックする必要があります。
  2. 通常、データベースにアクセスする各テスト ケースはトランザクションで実行され、その後ロールバックされます。結局、DBはまったく変更されていません。これを回避することもできますが、それは重要ではありません。
  3. テストは、何かを変更するたびに実行する必要があります。しかし、あなたが話している種類の問題は、(ほとんどの場合) 1 回限りの修正である必要があります。

しかし、やりたいことに対する非常にシンプルで適切な解決策があります。

  1. をインストール
  2. 不正確な/不要なデータを引き起こすバグを修正します。
  3. 既存の「壊れた」データを修正/クリーンアップするデータ移行を書き込みます。
  4. 更新して移行します。
  5. 2 ~ 5 を繰り返す

現在、これは 1 回限りの修正のみですが、ほとんどの場合、これが正しい方法です。データを修正するとともに、データの問題を引き起こすバグを修正します。

同じデータ変更機能を複数回 (定期的に) 実行する必要がある場合は、カスタム管理コマンド(または単純な実行可能な Python スクリプト) を作成し、cron から実行するようにスケジュールできます。

于 2011-08-02T10:38:03.580 に答える