Как согласовать существующие производственные данные с изменением схемы в App Engine? - PullRequest
5 голосов
/ 30 июля 2011

Допустим, вы разрабатываете свои классы модели App Engine определенным образом, вы вводите свой код в производство и позволяете пользователям некоторое время взаимодействовать с вашим приложением, генерируя данные в хранилище данных App Engine.

Теперь предположим, что вы решили внести изменения в один из ваших классов Model.

Есть ли рекомендуемый процесс для этого - в моем случае в приложении Java - чтобы, когда новый код вводился в эксплуатацию, он не вызывал сбои приложения при работе с уже существующими данными, которые имеют старая схема?

Например, должны ли вы загрузить свои производственные данные и проверить их перед загрузкой нового кода в производство?

Каковы лучшие практики для этого типа проблемы?

1 Ответ

2 голосов
/ 31 июля 2011

Один из подходов, если это допускает изменение схемы, - отложить создание версии, требующей изменения схемы по умолчанию, до тех пор, пока не будет выполнено изменение схемы.

Загрузите новую версию, подождите некоторое время, пока обновляются индексы, а затем запустите mapreduce, чтобы коснуться (и перенести) любые объекты, которые необходимо обновить. Когда это будет сделано, установите новую версию по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...