我有一个django应用程序,由17个模型组成。现在我已经意识到这些模型应该在3个不同的应用程序中(不在原始应用程序中)。所以现在我想将这些模型从原始应用程序迁移到这3个不同的应用程序。我该怎么做?
模型之间存在外键,通用外键和ManyToMany关系。我也有数据库中的数据(MySql),所以我希望在迁移过程中保留数据。
我已安装南部进行迁移,但不知道如何使用它来解决此问题。我已经完成了这个similar question,但找不到可以解决我问题的答案。感谢任何帮助!
答案 0 :(得分:2)
在我看来,您有两种完成此任务的方法,如下所述:
前者更容易,而后者可能会更好,因为表格会按照您的预期命名。
首先,你提到你已经安装了南方。第一步是为现有应用程序创建初始迁移。看看to the south tutorial。然后,您必须应用该迁移,但由于您已经拥有db中的表,除非包含--fake
标志,否则它将失败。
之后,您需要创建您提及的三个应用及其模型。同时创建并应用(这次没有假标志)初始迁移。
下一步是编写数据迁移。您必须手动编写它,但您可以使用datamigration创建骨架。您必须“手动”编写迁移。
现在你差不多完成了,唯一剩下的就是删除原始表。您可以删除这些模型,并创建“自动”模式迁移。
不要忘记使用migrate
命令应用迁移。另外,@ Bibhas提到了数据库的副本和/或它的转储是个不错的主意。