【发布时间】:2012-11-28 08:32:21
【问题描述】:
以前我有一个像这样的 django 模型
class Review(models.Model):
reviewdate=models.DateField(default=date.today)
description=models.TextField()
author=models.ForeignKey(User,null=True)
我在 db 中有大约 500 条 Review 记录。
我为模型添加了一个字段
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 函数中明确设置它?
【问题讨论】:
-
您不能只在本地测试您的迁移并找出答案吗?这是最好的方法(除了询问更有经验的人)来确定您是否正确地完成了它(至少在您有疑问的部分)。
-
对不起,这是我第一次这样做..我不确定如何备份数据库..如果出现问题,可以回滚这样的迁移更改吗?跨度>
标签: django django-south data-migration