【发布时间】:2012-07-14 22:30:39
【问题描述】:
我犯了一个愚蠢的错误,在同一个 Django 应用程序中创建了太多模型,现在我想将它分成 3 个不同的模型。问题是:两个客户的站点中已经有生产数据,所以我需要仔细计划要完成的任何模式/数据迁移(我正在使用 django-south)。我不确定如何继续,任何建议将不胜感激。
(我在 Ubuntu 服务器 12.4 LTS 上使用 PostgreSQL,如果有任何相关性的话)
我考虑过使用db.rename_table,但不知道如何正确更新这些模型的外键(从旧到新)——在数据库级别无关紧要(因为表重命名已经涵盖了这一点),但是在 ORM 级别并非如此。
更新:经过深思熟虑,并在programmmers.SE 上询问this question 之后,我决定保持简单,不用担心产品主要版本之间的迁移。短期内,我将只使用db.rename_table 来匹配新名称,同时也使用db_table 作为 Daniel Roseman 的建议,同时将模型保留在旧应用程序中。升级到主要版本时,我切换到新应用程序并完全放弃所有迁移(因此新版本的全新安装将“按原样”创建数据库,而不是经历所有历史迁移)。
【问题讨论】:
-
对于
django>=1.7,请参阅此帖子:stackoverflow.com/questions/25648393/…
标签: database django django-south schema-migration