我有两个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
。
有什么想法吗?