【问题标题】:Django change Model's field type from CharField to JSONFieldDjango 将 Model 的字段类型从 CharField 更改为 JSONField
【发布时间】:2018-03-14 09:55:42
【问题描述】:

我正在使用Django 1.11,我一直在模型中使用CharField,并使用json.dumps() 在其中转储数据。我正在使用mysql 数据库。

我想把CharField改成JSONField,根据this的回答。有什么方法可以让我在不丢失数据的情况下修改我的字段类型?

请注意,CharField 中的数据是 json 转储的。

【问题讨论】:

  • 只使用迁移会发生什么?
  • 使用迁移是什么意思?
  • 什么? Django 从 1.7 开始就内置了迁移功能。您是如何在不使用数据库的情况下创建数据库的?
  • 显然我正在使用它们,我没有得到你想知道的内容。
  • 您询问了如何更改字段的类型。这就是迁移的目的。

标签: python django django-models


【解决方案1】:

如果要完全控制流程编写自定义迁移:

1) 添加 JSONField null=True 类型的新字段

2) 使用自定义空迁移将数据复制到那里 RunPython https://docs.djangoproject.com/en/2.0/ref/migration-operations/#django.db.migrations.operations.RunPython 第一

3) 检查一切是否都复制好了

4) 删除旧字段

5) 最终处理字段重命名

【讨论】:

    猜你喜欢
    • 2016-06-30
    • 2021-04-20
    • 2016-01-29
    • 2020-03-21
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    • 2010-11-06
    • 1970-01-01
    相关资源
    最近更新 更多