我犯了在同一个 Django 应用程序中创建太多模型的愚蠢错误,现在我想将它分成 3 个不同的模型。问题是:两个客户的站点中已经有生产数据,所以我需要仔细计划要完成的任何模式/数据迁移(我正在使用 django-south)。我不确定如何进行,任何建议将不胜感激。
(如果有任何相关性,我在 Ubuntu 服务器 12.4 LTS 上使用 PostgreSQL)
我考虑过使用db.rename_table
,但无法弄清楚如何正确更新这些模型的外键(从旧到新) - 在数据库级别无关紧要(因为表重命名已经涵盖了),但在 ORM 级别并非如此.
更新:经过思考,并在programmmers.SE上提出这个问题后,我决定保持简单,不用担心产品主要版本之间的迁移。短期内,我将只使用db.rename_table
匹配新名称,同时也db_table
按照 Daniel Roseman 的建议使用,同时将模型保留在旧应用程序中。升级到主要版本时,我切换到新应用程序并完全放弃所有迁移(因此新版本的全新安装将“按原样”创建数据库,而不是经历所有历史迁移)。