Резервное копирование Хранилища данных GAE

7
задан Denis T. 11 October 2019 в 14:05
поделиться

1 ответ

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

Простой инструмент дампа / восстановления описан в документации Bulkloader .

Еще кое-что, что я делал в прошлом для основных рефакторов БД:

  1. Измените имя объекта в вашем новом коде (например, Пользователь -> Клиент или Пользователь2, если необходимо)
  2. При поиске объекта по ключу:
    1. Попробуйте ввести ключ и, если возможно, вернитесь.
    2. Попробуйте использовать ключ для старого класса db.Model. Если вы его найдете, перенесите данные, поместите () и верните новый объект
  3. Используйте объект как обычно

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

Разверните новую версию вашего кода, чтобы обе они сосуществовали на стороне сервера. Когда вы активируете новую версию, это похоже на моментальный снимок старых объектов. В экстренной ситуации вы можете повторно активировать старую версию и использовать старые данные.

6
ответ дан 7 December 2019 в 07:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: