如何合并Django应用程序?

时间:2015-05-30 05:24:44

标签: python django database django-models django-migrations

我有两个Django应用程序。 A,核心应用,B,最初是作为一个单独的应用,但实际上在A内更适合我们后来发现。我能够将所有代码从B移动到A,但在涉及数据库时却不尽如人意。

B将被删除,因此迁移最好完全在A。这样,任何人都可以提取最新代码并运行manage.py migrate,即使删除了B,它也可以在本地计算机上运行。

但是,在生产数据库上运行迁移时,仍需要将数据从B迁移到A

我的尝试

我尝试在迁移中内联B模型,查询它们(如果存在),然后使用新模型保存新对象。这是我之前使用SQLAlchemy的一种技术。唯一的问题是Django然后将这些临时模型添加到django_contenttype并在下次运行迁移时告诉我“以下内容类型是陈旧的并且需要删除”。 (我也不知道Django是否做了我可能错过的任何其他事情。)

我还尝试将db_table设置为旧应用的数据库表as suggested here,但是从头开始本地运行时表不存在。如果我包含CreateModel迁移,那么在现有数据库上迁移时,我会获得django.db.utils.OperationalError: table "b_model" already exists

有什么想法吗?

0 个答案:

没有答案