如何在Django中将IntegerField更改为CharField以获取已填充的数据库?

时间:2018-04-02 12:27:41

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

我需要将模型字段类型从IntegerField更改为CharField。我的数据库已经投入生产。应用迁移时,将显示以下错误:

class Migration(migrations.Migration):
  operations = [
        migrations.AlterField(
            model_name='room',
            name='number',
            field=models.CharField(max_length=32),
        ),
    ]
  

django.db.utils.ProgrammingError:运算符不存在:字符变化> =整数

     

提示:没有运算符匹配给定的名称和参数类型。您   可能需要添加显式类型转换。

我有一个解决方案但对我来说似乎很乏味:

  • 假设'number'是IntegerField。我想把它改成CharField。创建新的CharField'number_char',从IntegeField'number'克隆数据,删除'number'并将'number_char'重命名为'number'。

在Django中这样做最优雅的方式是什么?

提前致谢。

0 个答案:

没有答案