Mongoengine изменить структуру документа - PullRequest
0 голосов
/ 26 марта 2020

Я впервые пытаюсь использовать mon go и выбираю mongoengine. После определения структуры документа, если я пытаюсь изменить его (добавление поля, удаление поля, переименование в e cc ..), операции чтения все еще работают, но любая другая операция над ранее сохраненным документом завершается неудачей, поскольку они больше не совместимы с примечаниями. со структурой документа. Есть ли способ справиться с этой ситуацией? использовать только документы Dynami c со словарями вместо EmbeddedDocuments?

1 Ответ

1 голос
/ 01 апреля 2020

Использование DynamicDocument или установка meta = {'strict': False} в вашем документе может помочь в некоторых случаях, но единственное правильное решение для этого - запуск сценария миграции.

Я бы рекомендовал сделать это, используя pymongo, но Вы также можете сделать это из оболочки go. Каждый раз, когда ваша модель изменяется несовместимым образом, вы должны выполнить миграцию существующих данных, чтобы она соответствовала новой модели. В противном случае mongoengine будет жаловаться в какой-то момент (автор mongoengine здесь)

...