Django迁移更改字段类型
我对某个模特有一个FKDjango迁移更改字段类型,django,django-models,django-migrations,Django,Django Models,Django Migrations,我对某个模特有一个FK class A(models.Model): b = models.FK(to=B) 我需要把它改成IntegerField,这样看起来 class A(models.Model): b_id = models.IntegerField() 如何添加新迁移而不真正更改数据库中的任何内容?创建一个迁移,该迁移将更改字段类型,然后重命名字段: # -*- coding: utf-8 -*- from __future__ import unicode_li
class A(models.Model):
b = models.FK(to=B)
我需要把它改成IntegerField,这样看起来
class A(models.Model):
b_id = models.IntegerField()
如何添加新迁移而不真正更改数据库中的任何内容?创建一个迁移,该迁移将更改字段类型,然后重命名字段:
# -*- 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
进行两次重命名,但此列中的数据将被保留