1

以前我有一个像这样的 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 schemamigration myapp --auto成功,创建了一个0002_auto__add_field_review_rating.py文件

现在,我需要对 db 中的现有记录进行数据迁移。我必须跑吗

python manage.py datamigration myapp somechanges

然后实现创建的功能somechanges.py?由于我已经在新字段中定义difficulty了默认值 5,所以在运行 migrate 命令时不会采用吗?我是否必须在somechanges.py函数中明确设置它?

4

1 回答 1

2

对于这种情况,您无需进行数据迁移。由于您为新字段指定了默认值,因此在应用架构迁移时将使用该默认值。

使用以下命令应用迁移:

./manage.py migrate myapp

有关新字段默认值的更多信息,请参阅高级更改South 教程。

于 2012-11-28T08:38:25.247 回答