Изменение таблицы хранилища данных Google AppEngine при сохранении данных - PullRequest
2 голосов
/ 01 декабря 2010

Я использую python для разработки приложения для движка приложений Google. Мой вопрос заключается в том, что во время разработки несколько раз нам необходимо изменить модели данных для добавления, удаления или даже изменения типа данных некоторых полей. Но изменение моделей не вступит в силу, пока мы не используем clear_datastore, который уничтожает все данные. это правда или я что-то не так делаю?

1 Ответ

3 голосов
/ 01 декабря 2010

хранилище данных само по себе не содержит схемы;это означает, что вы можете иметь объекты одного типа с разными свойствами.Таким образом, изменения do вступают в силу, но существующие данные не обновляются автоматически до новой схемы. Под прикрытием все объекты являются буферами протокола, что-то вроде dict (пары ключ-значение).

Когда вы хотите внести изменения в вашу схему, и уже существуютДанные, которые тоже нужно обновить, вам нужно каким-то образом преобразовать.Зачастую вам нужно написать специальный скрипт для загрузки исходной сущности, преобразования в новую схему и повторной ее установки.У Google есть статья , в которой обсуждается эта тема.

...