Mysql 如何将两个django模型(表)合并为一个模型(表)
我想合并两个django模型并创建一个模型。让我们假设 我有第一个表A和一些列和数据Mysql 如何将两个django模型(表)合并为一个模型(表),mysql,django,database,Mysql,Django,Database,我想合并两个django模型并创建一个模型。让我们假设 我有第一个表A和一些列和数据 Table A -------------- col1 col2 col3 col4 x1 x2 x3 x4 y1 y2 y3 y4 我还有另一个表,表B有一些列和数据 Table B -------------- col1 col2 col5 col6 x1 x2 p3 p4 y1 y
Table A
--------------
col1 col2 col3 col4
x1 x2 x3 x4
y1 y2 y3 y4
我还有另一个表,表B有一些列和数据
Table B
--------------
col1 col2 col5 col6
x1 x2 p3 p4
y1 y2 p5 p6
在这两个模型(表)中,我有几列(这里有两列)相似,也有几列不同。因此,我希望合并这两个模型(表),并生成如下内容:
Table C
-------------------------------------
col1 col2 col3 col4 col5 col6
x1 x2 x3 x4 p3 p4
y1 y2 y3 y4 p5 p6
我知道当我将合并模型并运行makemigration时,django肯定会创建一个迁移,迁移后,我将能够创建上述结构,但我不想丢失数据,因为它将在prod db上运行。
在数据库上使用sql查询很容易做到,但如何使用django????
提前感谢您的回复。进行自定义数据迁移。自定义迁移应该可以工作
我建议你接受凯尼的回答
def merge_models_ab(apps, schema_editor):
A = apps.get_model("app_name", "A")
B = apps.get_model("app_name", "B")
C = apps.get_model("app_name", "C")
#come up with some interesting ways to join A and B
#iterate over join and insert into C
#C.objects.create(...)
class Migrations(migrations.Migration):
dependencies = [
('app_name', 'some_prev_migrations'),
]
operations = [
migrations.RunPython(merge_models_ab),
]