【发布时间】:2010-11-03 21:05:30
【问题描述】:
如何删除所有实体或重置我的 dev_appserver 上的本地数据存储?我在测试时不小心递归调用了一个函数来创建一个实体。
我正在使用带有 Python 的 Vista 上的 Google App-engine SDK。
【问题讨论】:
标签: google-app-engine google-cloud-datastore
如何删除所有实体或重置我的 dev_appserver 上的本地数据存储?我在测试时不小心递归调用了一个函数来创建一个实体。
我正在使用带有 Python 的 Vista 上的 Google App-engine SDK。
【问题讨论】:
标签: google-app-engine google-cloud-datastore
【讨论】:
一个有用的做法是始终指定 --datastore_path,例如--datastore_path=test.datastore.
要删除它,您只需删除该文件即可。您还可以保留副本并将它们换入和换出。并且商店将在重新启动后持续存在(当 /tmp/ 无论如何它在 Linux 上的默认位置被清除时)
【讨论】:
在生产中,这也可能派上用场(或成为安全噩梦)。
# 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('.')
【讨论】:
在生产中 - 你可以去 appengine 仪表板 => 数据存储区管理员
【讨论】:
如果您来这里是为了 Java 解决方案:删除以下文件:
{project root}/WEB-INF/appengine-generated/local_db.bin
重建并重新启动您的项目。
【讨论】:
out/artifacts/xxxx_war_exploded/WEB-INF/appengine-generated 中找到了这样的文件,但该文件看起来非常小——它可能只是某种索引,真实数据(blob?)可能存储在其他地方。我必须重新启动服务器才能完成删除。
dev_appserver.py [应用目录] --clear_datastore true
如果服务器当时正在运行,则需要关闭服务器以释放端口
【讨论】:
这是我运行 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 管理控制台并编辑/删除数据存储区实体。
【讨论】: