将新的ForeignKey字段添加到现有的django MongoDB模型中?

时间:2012-05-07 07:06:24

标签: mongodb django-models django-nonrel

我正在使用“Django Non-rel”和Django-MongoDB ORM“用于MongoDB Nosql数据库的项目。我需要更改我的一个模型并向其添加一个ForeignKey字段。我认为South会帮助数据迁移,但我知道南方不支持MongoDB。我的模型是这样的:

class Projects(models.Model):
    projectName =models.CharField(max_length = 100,unique=True,db_index=True)
    projectManager = models.ForeignKey('auth.User')

我需要将states = models.ForeignKey('States')添加到我的模型中。但我不知道如何在没有南方的情况下执行此操作,以便它不会在我现有的数据库中创建问题。请帮助人员:(

1 个答案:

答案 0 :(得分:1)

我正在使用django non-rel on appengine,这可能无法完美地转换为MongoDB,但我怀疑它是一样的。

我一直在做以下事情,需要几步。

  1. 使用null = True更新了您的模型: projectManager = models.ForeignKey('auth.User',null = True)
  2. 这可确保数据库中的现有模型不会导致Django抛出异常。

    1. 编写一个脚本,查询所有项目并更新其projectManager字段

    2. 使用null = False再次更新模型 projectManager = models.ForeignKey('auth.User')

    3. 既然DB中没有任何对象具有projectManager的空字段,则可以删除空标志。