【问题标题】:Django creating different tables for same modelDjango为同一模型创建不同的表
【发布时间】: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 为要存储在这里的每个数据项创建了一个表,因此删除了现在只能识别的无用旧记录按时间戳记太费时间,备份也很痛苦,因为表的大小非常大。

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

提前致谢。

【问题讨论】:

    标签: php python mysql sql django


    【解决方案1】:

    这是一个选项。

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

    South 是一个提供一致、易于使用和 Django 应用程序的与数据库无关的迁移。

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

    那么,除了设置South之外,还有一些步骤只需要做一次:

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

    还可以看看django-parting 项目——它看起来不是很成熟并且可以使用,但是,至少,看看他们如何管理每个模型的多个表(基本上它有点像Model Manager“魔法” )。

    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-29
      • 1970-01-01
      • 2017-03-19
      • 2018-05-30
      • 1970-01-01
      • 2011-03-08
      • 2017-05-07
      相关资源
      最近更新 更多