Django为同一模型创建不同的表
Posted
技术标签:
【中文标题】Django为同一模型创建不同的表【英文标题】:Django creating different tables for same model 【发布时间】:2014-04-11 11:03:30 【问题描述】:之前我在没有任何框架的情况下使用 php,用于面向服务的 Web 应用程序,我必须在其中存储大量要存储的数据,这些数据可以轻松删除并且易于备份;所以我编写了代码,每个月将相同的数据存储在相同架构的不同表中,这样就可以轻松地运行删除表查询或创建表备份,而不是对整个表运行查询。
+------------------+---------------------------+
| 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】:这是一个选项。
由于您要迁移到 Django,我建议您遵循最佳实践并立即开始使用 South:
South 是一个提供一致、易于使用和 Django 应用程序的与数据库无关的迁移。
另外,我会将您的所有表格合并为一个带有时间戳字段的表格 - 这样应用程序可以更轻松地与您的数据“对话”。
那么,除了设置South
之外,还有一些步骤只需要做一次:
data_%Y_%m_%d
表移动到由您的架构迁移表新创建的。运行数据迁移。
还可以看看django-parting 项目——它看起来不是很成熟并且可以使用,但是,至少,看看他们如何管理每个模型的多个表(基本上它有点像Model Manager
“魔法” )。
希望对您有所帮助。
【讨论】:
以上是关于Django为同一模型创建不同的表的主要内容,如果未能解决你的问题,请参考以下文章