Добавление нового поля ForeignKey в существующую модель django MongoDB?
Я использую "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 ответ
Я использую django non-rel на appengine, это может не совсем перевести на MongoDB, но я подозреваю, что это то же самое.
Я делал следующее, это занимает несколько шагов.
- Обновлена ваша модель с null=True: projectManager = models.ForeignKey('auth.User', null=True)
Это гарантирует, что ваши существующие модели в базе данных не будут вызывать Django для создания исключений.
Напишите скрипт, который будет запрашивать все проекты и обновлять их поля projectManager.
Снова обновите модель с помощью null=False projectManager = models.ForeignKey('auth.User')
Теперь, когда ни один из объектов в БД не имеет нулевого поля для projectManager, можно удалить нулевой флаг.