【发布时间】:2017-10-24 02:50:50
【问题描述】:
我需要外包以下Django模型中的一些属性:
class TextResult(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1)
text = models.ForeignKey(Text)
# following fields will be in the referenced model
wpm = models.FloatField(default=0.0)
accuracy = models.FloatField(default=1.0,
validators=[MinValueValidator(0.0),
MaxValueValidator(1.0)])
模型,引用特定数据:
class TextResult(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, default=1)
text = models.ForeignKey(Text)
typing_result = models.ForeignKey(TypingResult)
class TypingResult(models.Model):
wpm = models.FloatField(default=0.0)
accuracy = models.FloatField(default=1.0,
validators=[MinValueValidator(0.0),
MaxValueValidator(1.0)])
问题是,数据库中已经有一些数据,所以我必须将数据迁移到新结构中,实现这一目标的最简单、最干净的方法是什么?
【问题讨论】:
-
你创建一个迁移,创建新表和外键列,然后遍历所有行将数据复制到新表并设置外键,最后删除旧的主表中的列。您应该能够从 Django 自动创建的迁移文件中挽救一些代码。
标签: python django model foreign-keys migrate