我对某个型号有一个FK
class A(models.Model):
b = models.FK(to=B)
我需要将其更改为IntegerField,因此它看起来像
class A(models.Model):
b_id = models.IntegerField()
如何在不真正更改数据库中的任何内容的情况下添加新迁移?
答案 0 :(得分:2)
创建一个将更改字段类型的迁移,然后重命名该字段:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
('app', '000X_the_name_of_prev_migration'),
]
operations = [
migrations.AlterField(
model_name='a',
name='b',
field=models.IntegerField(),
preserve_default=True,
),
migrations.RenameField(
model_name='a',
old_name='b',
new_name='b_id',
),
]
事实上,在SQL级别,列b_id -> b
和b -> b_id
将有两个重命名,但此列中的数据将被保留。