马上,我会继续研究南方的方法。这是我要尝试的工作流程:
1)South schema迁移创建两个新的TextField字段,称为“failed_reqs_txt”和“passed_reqs_txt”。在
2)创建数据迁移,将数据从旧字段迁移到新字段
3)创建一个模式迁移,以删除原始的“失败的请求”和“通过的请求”字段。在
如果您需要字段的名称与原始字段相同,我将继续:
4)创建一个模式迁移,将“失败的请求”和“通过的请求”作为文本字段添加
5)创建数据迁移,从“failed_reqs_txt”和“passed_reqs_txt”迁移到“failed_reqs”和“passed_reqs”字段。在
6)创建模式迁移,删除“failed_reqs_txt”和“passed_reqs_txt”字段。在
虽然这是很多次迁移,但它将每个变化分解为原子迁移。我先试试这个。我不知道为什么南方会放弃并重建数据库。在将south添加到项目中时,是否运行了convert\u-to-eu-south选项?我认为这是一次迁移,让南方知道它正在处理一个现有的项目,而不是一个新的项目。在
另一种方法是,您可以对数据库进行一些直接更改,以更改列类型,然后更新模型.py从CharField到TextField。Postgres,假定支持以这种方式隐式更改数据类型。(见第5.5.6节)我不确定mysql,但我认为它的工作原理是一样的。(CharField到textfield应该是兼容的转换)
不管怎样,我会在做任何这样的改变之前备份我的数据。希望这有帮助。在