Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 使用south数据迁移更改旧记录中的值_Django_Django South_Data Migration - Fatal编程技术网

Django 使用south数据迁移更改旧记录中的值

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

以前我有一个像这样的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 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

有关新字段默认值的更多信息,请参阅南方教程。

您不能在本地测试迁移并找出答案吗?这是最好的方法(除了询问更有经验的人)来确定您是否正确地完成了(至少在您有疑问的部分)。对不起,这是我第一次这么做。我不知道如何备份数据库。如果出现问题,是否可以回滚这样的迁移更改?