sách gpt4 ăn đã đi

mysql - Cách hợp nhất hai mô hình (bảng) django thành một mô hình (bảng)

In lại 作者:搜寻专家 更新时间:2023-10-30 23:38:41 28 4
mua khóa gpt4 giày nike

我想合并两个 Django 模型并创建一个模型。让我们假设我有第一个表表 A,其中包含一些列和数据。

Table A
--------------
col1 col2 col3 col4
x1 x2 x3 x4
y1 y2 y3 y4

我还有另一个表 Table 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

我知道我什么时候会合并模型并运行 make migration,django 肯定会创建一个迁移,并且在迁移之后我将能够创建上述结构,但我不想丢失我的数据,因为它将继续在 prod db 上.可以通过对数据库的 sql 查询轻松完成,但是如何使用 django 呢????预先感谢您的任何回复。

câu trả lời hay nhất

自定义迁移应该有效。

  1. 您已经有了模型 A 和 B,因此使用您希望从这两个模型中获得的字段创建模型 C。
  2. 进行正常的架构迁移,例如manage.py makemigrations ... 并申请任何现有更改
  3. 创建自定义迁移,例如python manage.py makemigrations --empty yourappname(查看@2ps 共享的链接
  4. 编辑上面生成的文件,我在下面添加了一个示例数据迁移。
  5. rum manage.py migrate 应用上面第 4 步的迁移。
  6. 如果您愿意,可以删除模型 A 和 B,生成迁移并应用,您应该会很好。

    ...

    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),
    ]

关于mysql - 如何将两个django模型(表)合并为一个模型(表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38006144/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress