一键式南方数据迁移

2024-05-21 17:15:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用South进行sqlite3数据迁移。我的旧架构具有以下UserProfile模型:

class UserProfile(models.Model):
    user = models.OneToOneField(User)
    weekOne = models.OneToOneField(WeekOne)
    weekTwo = models.OneToOneField(WeekTwo)
    weekThree = models.OneToOneField(WeekThree)

但我增加了一些新的星期,例如,weekFour,weekFive,weekSix等等。weekFour本身就是一个模型,继承了一个通用的week模型。一周模型的基本原型如下:

^{pr2}$

我的问题是,我应该在我的数据迁移代码中放入什么样的代码,以便在接下来的几周内填充旧的UserProfile。我有这样的想法:

def forwards(self, orm):
    for user in orm.UserProfile.objects.all():
        user.weekFour = orm.WeekFour()
        user.weekFive = orm.weekFive()
        # etc.

但这似乎行不通。尝试运行架构迁移时出现以下错误:

Migration 'my_app:0002_newWeeks' is marked for no-dry-run

后来这个:

DatabaseError: no such column: my_app_userprofile.weekFour_id

Tags: 数据no代码模型appformodels架构