Как удалить все объекты из локального хранилища данных Google App-engine?

Как удалить все объекты или сбросить локальное хранилище данных на моем dev_appserver? Я случайно рекурсивно вызвал функцию для создания сущности при тестировании.

Я использую Google App-engine SDK на Vista с Python.

7 ответов


dev_appserver.py --clear_datastore=yes myapp

посмотреть здесь для получения дополнительной информации.

сокращенный вариант:

dev_appserver.py -c

Если вы пришли сюда Java-решение: удалить следующий файл:

{project root}/WEB-INF/appengine-generated/local_db.bin

восстановить и перезапустить проект.


dev_appserver.py [каталог приложений] --clear_datastore true

вам нужно выключить сервер, если он работает в то время, чтобы освободить порты


полезно всегда указывать --datastore_path, например --datastore_path=test.хранилище данных.

чтобы удалить его, вы можете просто удалить файл. Вы также можете хранить копии и менять их местами. И магазин будет сохраняться над перезагрузками (когда /tmp/ местоположение по умолчанию для него в Linux в любом случае очищается)


в производстве - вы можете пойти в AppEngine dashboard => администратор хранилища данных


вот мой вывод после запуска dev_appserver

INFO     2017-03-21 15:07:36,085 devappserver2.py:764] Skipping SDK update check.
INFO     2017-03-21 15:07:38,342 api_server.py:268] Starting API server at: http://localhost:63970
INFO     2017-03-21 15:07:38,349 dispatcher.py:199] Starting module "default" running at: http://localhost:8080
INFO     2017-03-21 15:07:38,373 admin_server.py:116] Starting admin server at:

Итак, я иду в http://localhost:8000 и я могу перейти к моей локальной консоли администратора App Engine и редактировать/удалять объекты хранилища данных.


в производстве, это также может пригодиться (или быть кошмаром безопасности).

# will DELETE the database use http://localhost:8083/deletemodels?force=true
class DeleteModels(webapp.RequestHandler):
    def get(self):

    def dMsg(msg):
      self.response.out.write(msg + '\n')
    n = self.request.get('force')
    if n:
      dMsg('clearing YourModelHere data....')
      for uc in YourModelHere.all():
               uc.delete()
               dMsg('.')
      dMsg('clearing YouNextModelHere data....')           
      for uc in YouNextModelHere.all():
               uc.delete()
               dMsg('.')