Django 使用south数据迁移更改旧记录中的值
以前我有一个像这样的django模型Django 使用south数据迁移更改旧记录中的值,django,django-south,data-migration,Django,Django South,Data Migration,以前我有一个像这样的django模型 class Review(models.Model): reviewdate=models.DateField(default=date.today) description=models.TextField() author=models.ForeignKey(User,null=True) 我在db中有大约500份审查记录 我在模型中添加了一个字段 from django.core.validators import MinVa
class Review(models.Model):
reviewdate=models.DateField(default=date.today)
description=models.TextField()
author=models.ForeignKey(User,null=True)
我在db中有大约500份审查记录
我在模型中添加了一个字段
from django.core.validators import MinValueValidator,MaxValueValidator
class Review(models.Model):
reviewdate=models.DateField(default=date.today)
description=models.TextField()
author=models.ForeignKey(User,null=True)
rating= models.IntegerField(validators=[MinValueValidator(1), MaxValueValidator(10)], default=5, help_text='integers 1 to 10')
我成功地运行了python manage.py模式迁移myapp--auto
,创建了0002\u auto\u add\u field\u review\u rating.py
文件
现在,我需要对数据库中的现有记录进行数据迁移。我必须跑吗
python manage.py数据迁移myapp somechanges
然后在创建的
somechanges.py
中实现函数?由于我已经在新字段难度中定义了一个默认值5,所以在运行migrate命令时不会采用该值吗?我是否必须在somechanges.py
函数中显式设置它?对于这种情况,不需要进行数据迁移。由于您已为新字段指定了默认值,因此在应用架构迁移时将使用该默认值
使用以下命令应用迁移:
./manage.py migrate myapp
有关新字段默认值的更多信息,请参阅南方教程。您不能在本地测试迁移并找出答案吗?这是最好的方法(除了询问更有经验的人)来确定您是否正确地完成了(至少在您有疑问的部分)。对不起,这是我第一次这么做。我不知道如何备份数据库。如果出现问题,是否可以回滚这样的迁移更改?