【问题标题】:Renaming Django model field重命名 Django 模型字段
【发布时间】:2016-06-21 10:01:49
【问题描述】:

我正在尝试将我的模型字段(单位)之一从 FloatField 转换为 IntegerField。

我的策略是这样的:

  1. 添加“_units”字段(IntegerField)
  2. 将数据从“units”复制到“_units”
  3. 删除“单位”
  4. 将“_units”重命名为“units”

第 1 - 3 步的迁移运行良好,但在第 4 步运行测试时出现错误:

django.db.utils.OperationalError:没有这样的列:myapp_mymodel._units

对于这一步,我做了一个空迁移,然后添加到操作中;

migrations.RenameField('MyModel', '_units', 'units')  

我哪里错了?

【问题讨论】:

  • migrations.AlterField有问题吗?
  • 啊,是的,容易多了。谢谢
  • 从我的评论中回答。

标签: django migration


【解决方案1】:

使用migrations.AlterField 它将同时完成所有 4 个步骤。

【讨论】:

  • 我不知道。这几个月来我一直在努力。哈哈。生活和学习……哈哈!谢谢。
  • @Ev.如果您正在更改不可相互转换的字段,则可能会出现一些问题。所以请阅读文档。
  • 是的。看到你的帖子后,我去阅读文档。它可能对某些数据库有一些限制,但对我来说可以。
  • 如何将所有 4 个步骤合二为一?
  • @CsabaToth 通过调用 migrations.AlterField 这个迁移命令将所有 4 个步骤描述为一个。阅读文档,如果您仍有问题,请告诉我
猜你喜欢
  • 2016-02-10
  • 2020-01-10
  • 2011-03-15
  • 2011-07-23
  • 2015-11-10
  • 2020-02-06
  • 2015-10-12
  • 2020-05-07
  • 2015-01-26
相关资源
最近更新 更多