Удалите свойство из существующего Образцового экземпляра

У меня есть Модель с большим свойством User.image Having блоба, это свойство в моей модели заставило мои запросы занять слишком много времени и пойти за крайний срок, таким образом, я решил переместить то свойство в другую модель - UserData - кто родитель, Пользователь.

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

Там кто-либо, путь состоит в том, чтобы удалить те данные из Пользовательских экземпляров?

9
задан Eran Kampf 6 January 2010 в 12:44
поделиться

2 ответа

Ответ на ваш вопрос документирован здесь: https://developers.google.com/appengine/articles/update_schema

Копирование/вставка из раздела "Удаление удаленных свойств из хранилища данных" :

Если вы удаляете свойство из вашего модель, вы обнаружите, что существующий организации все еще владеют собственностью. всё равно будет показано администратору приставка и все еще будет присутствовать в хранилище данных. Чтобы по-настоящему очистить старые данные, нужно прокрутить ваши объекты и удалить данные из каждый из них.

  1. Убедитесь, что вы удалили свойства из определения модели.
  2. Если ваш класс модели наследует от db.Model, временно переключите его. унаследовать от ДБ Экспандо. (db.Model экземпляры не могут быть изменены динамически, что нам и нужно, чтобы сделать на следующем этапе.)
  3. Цикл через существующие объекты (как описано выше). Для каждой сущность, используйте delattr для удаления устаревшее имущество, а затем сохранить сущность.
  4. Если ваша модель изначально унаследована от db.Model, не забудьте... изменить его обратно после обновления всех данные.
12
ответ дан 4 December 2019 в 20:24
поделиться

У меня сейчас нет средств, чтобы это проверить, но я бы попробовал установить свойство образа на null или None (не уверен, используете ли вы Java или Python) при переходе к использованию класса UserData. Вы могли бы просто сделать это в своем коде в качестве способа исправления свойства, или вы могли бы настроить работу cron, которая делает все это сразу. Я не уверен, что есть лучший способ полностью удалить свойство образа из сущности, но это, по крайней мере, решило бы вашу проблему со временем загрузки.

-1
ответ дан 4 December 2019 в 20:24
поделиться
Другие вопросы по тегам:

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