我正在尝试在Django 1.8中进行迁移。
迁移看起来像这样:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
def update_email_username(apps, schema_editor):
user_id = 'the-uuid-will-go-here'
OrgUser = apps.get_model("org_user", "OrgUser")
for person in OrgUser.objects.filter(user_id=user_id):
person.username = "person@email.com"
person.save()
class Migration(migrations.Migration):
dependencies = [
('org_user', '0001_initial'),
]
operations = [
migrations.RunPython(update_email_username),
]
我得到了:
django.db.migrations.graph.CircularDependencyError: org_user.0001_initial
我也试过
dependencies = [
('org_user', '__first__'),
]
我得到了:
django.db.utils.ProgrammingError: relation "org_user_orguser" does not exist
但是org_user绝对有一个模型,它位于我的settings.py。
中我的迁移到底发生了什么?如何成功运行此迁移中列出的更改?
如果有帮助的话,这是Postgres。
编辑:
当我暂时删除迁移并重新创建数据库时,一切都很好(包括org_user),如果我然后尝试将迁移添加回模型的/ migration目录并运行它,我会收到错误:{ {1}}
答案 0 :(得分:0)
我真的不知道,如果我理解正确的话...... 通常,从一个新项目开始,它的工作原理如下:
manage.py makemigrations
manage.py makemigrations
,并在迁移文件夹中自动创建新的迁移。 如果您有多个软件包,则自动生成的迁移通常会将每个软件包的最后一次迁移作为依赖项。如果您不想做任何数据游戏或任何事情,则不需要关心依赖项。
您可以找到更多信息here
应始终使用
自动生成初始迁移makemigrations
命令
编辑:你确定你不想拥有:('orguser', '0001_initial')