Django为同一个模型创建不同的表

时间:2014-03-08 03:33:29

标签: php python mysql sql django

Earilier我在没有任何框架的情况下使用PHP,面向服务的Web应用程序,我必须存储大量要存储的数据,这些数据可以轻松删除,并且可以轻松进行备份;所以我编写了代码,每个月将相同的数据存储在同一架构的不同表中,这样就可以轻松运行drop table查询或创建表的备份而不是在整个表上运行查询。

+------------------+---------------------------+
| data_2014_01_01  |  will store data of jan   |
| data_2014_02_01  |  will store data of feb   |
| data_2014_03_01  |  will store data of march |
+------------------+---------------------------+

等等。

由于我正在将代码迁移到django,我怎样才能完成同样的事情,因为django ORM为每个数据项创建一个表,因此删除了无用的旧记录,现在只能识别按时间戳占用太多时间并且备份也很痛苦,因为表的大小非常大。

请在这里告诉我一些技巧,欢迎任何想法。

提前致谢。

1 个答案:

答案 0 :(得分:3)

这是一个选项。

由于您要迁移到Django,我建议您遵循最佳做法并立即开始使用South

  

South是一种提供一致,易用和的工具   Django应用程序的数据库无关迁移。

此外,我将所有表格合并为一个带有时间戳字段的表格 - 这样,应用程序就可以更轻松地与您的数据“对话”。

然后,除了设置South之外,您还需要执行一次步骤:

  • 创建架构 - 定义模型,创建初始架构迁移并运行它。
  • 编写一个data migration,它将把多个data_%Y_%m_%d表中的数据移动到您的架构迁移表中新创建的表中。运行数据迁移。

另外看一下django-parting项目 - 它看起来不太成熟并且可以使用,但至少看看他们如何为每个模型管理多个表(基本上它有点{{1} }“魔术”)。

希望有所帮助。