将Django模型从一个应用程序移动到另一个应用程

mgi*_*nbr 8 database django django-south schema-migration

我犯了一个愚蠢的错误,就是在同一个Django应用程序中创建太多模型,现在我想把它分成3个不同的模型.问题是:在两个客户的站点中已经有生产数据,所以我需要仔细规划任何模式/数据迁移(我正在使用django-south).我不确定如何继续,任何建议将不胜感激.

(我在Ubuntu服务器12.4 LTS上使用PostgreSQL,如果有任何相关性)

我考虑过使用db.rename_table,但是无法弄清楚如何正确地将外键更新为那些模型(从旧到新) - 在数据库级别无关紧要(因为表重命名已经覆盖了),但在ORM级别则不然.

更新:在考虑之后,在对programmmers.SE 提出这个问题后,我决定保持简单,不要担心产品主要版本之间的迁移.短期内,我将使用db.rename_table匹配新名称,同时也使用db_table丹尼尔罗斯曼建议,一直保持模型在旧的应用程序.当升级到主要版本时,我开始使用新应用程序并完全放弃所有迁移(因此,新版本的新安装将"按原样"创建数据库,而不是完成所有历史迁移).

Dan*_*man 14

我根本不明白为什么你需要任何数据迁移.

只需将模型移动到新应用程序,并db_table在内部Meta类中添加一个设置以指向旧表名称.

  • 这非常有效,但是如何使用现代Django迁移? (2认同)