2012-05-07 2 views
0

Я использую «Django Non-rel» и Django-MongoDB ORM для моего проекта с базой данных MongoDB Nosql. Мне нужно изменить одну из моих моделей и добавить к нему поле ForeignKey. Я думал, что Юг поможет в миграции данных но я должен знать, что Южная оленья кожа поддержка модели MongoDB.My как это:Добавление нового поля ForeignKey в существующую модель django 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') к моему model.But я понятия не имею, как это сделать, не на юг, так что он оленья кожа создавать проблемы в моей существующей базе данных. Пожалуйста, помогите парням :(

ответ

1

Я использую django non-rel on appengine, это может не перевести отлично на MongoDB, но я подозреваю, что это то же самое.

Я делаю следующее, это занимает несколько шагов.

  1. Обновление вашей модели с нулевым = True: = models.ForeignKey Управление проектами ('auth.User', NULL = True)

Это гарантирует, что существующие модели в базе данных не собираются вызывать Django для исключения.

  1. Написать скрипт, который будет запрашивать все проекты и обновлять их поля

    Управление проектами
  2. обновить модель снова с нулевым = False = models.ForeignKey Управление проектами ('auth.User')

Теперь, когда ни один из объектов в БД не имеет нулевого поля для projectManager, нормально удалить нулевой флаг.

Смежные вопросы