0

我在 MongoDB Nosql 数据库的项目中使用“Django Non-rel”和 Django-MongoDB ORM”。我需要更改我的一个模型并为其添加一个 ForeignKey 字段。我认为 South 将有助于数据迁移,但我知道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')到我的模型中。但我不知道如何在没有南的情况下做到这一点,这样它就不会在我现有的数据库中产生问题。请帮助大家:(

4

1 回答 1

1

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

我一直在做以下,它需要几个步骤。

  1. 使用 null=True 更新您的模型: projectManager = models.ForeignKey('auth.User', null=True)

这可以确保您在数据库中的现有模型不会导致 Django 抛出异常。

  1. 编写一个脚本来查询所有项目并更新它们的 projectManager 字段

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

现在数据库中的所有对象都没有 projectManager 的空字段,可以删除空标志。

于 2012-05-10T18:59:03.447 回答