0

我有一个想法,在实施之前我想把它扔出去以获得一些反馈,甚至发现有人已经这样做了。

事情是这样的:我有一个网站运行着一个数据库,该数据库在几个月内增长得非常快,并且在发生的几个问题中,充满了大量的垃圾。我正在考虑建立一些脚本来在数据库中运行并清理混乱。所以,我的想法是使用 Django 测试,以一种可以编写大量小型简单测试的方式来实现这一点,除了不是举起标志,而是实际上可以解决问题。

你们有什么感想?我想不出任何理由为什么这行不通。但我在 Django 中没有那么老练。会很难吗?有什么可预见的问题吗?

谢谢!

4

1 回答 1

3

不,这是一个坏主意,原因有很多,从设计角度到实施问题。仅举几例:

  1. 测试不在实际数据库上运行。为它从头开始创建一个单独的数据库。你必须破解这个。
  2. 通常每个接触数据库的测试用例都在事务中运行,然后回滚。所以最终数据库根本没有改变。Ofc 你也可以避免这种情况,但这不是重点。
  3. 当您更改某些内容时,测试应该一直运行。但是你所说的那种问题应该是一次性的(大部分)。

但是对于您想要做的事情,有一个非常简单且合适的解决方案:

  1. 安装
  2. 修复导致不正确/不需要的数据的错误。
  3. 编写修复/清理已经存在的“损坏”数据的数据迁移。
  4. 更新和迁移。
  5. 重复 2-5

现在,这仅适用于一次性修复,但在大多数情况下,这是正确的方法。您修复了导致数据问题的错误,同时修复了数据。

如果您确实需要多次(定期)运行相同的数据更改功能,那么您可以创建一个自定义管理命令(或只是一个简单的可执行 python 脚本)并安排它从 cron 运行。

于 2011-08-02T10:38:03.580 回答