【问题标题】:Adding new ForeignKey field to an existing django MongoDB model?将新的 ForeignKey 字段添加到现有的 django MongoDB 模型?
【发布时间】:2012-05-07 07:06:23
【问题描述】:

我在 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') 添加到我的模型中。但我不知道如何在没有南的情况下执行此操作,这样它就不会在我现有的数据库中产生问题。请帮助大家:(

【问题讨论】:

    标签: mongodb django-models django-nonrel


    【解决方案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 的空字段,可以删除空标志。

    【讨论】:

      猜你喜欢
      • 2015-11-02
      • 2010-10-24
      • 2020-02-13
      • 2023-03-15
      • 2020-07-04
      • 2015-04-07
      • 2018-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多