GoogleAppEngineLauncher:数据库磁盘映像损坏。

4
我已经为Google App Engine编写了一个小应用程序,每次想要运行我的应用程序时,都会出现以下错误:
*** Running dev_appserver with the following flags:
    --skip_sdk_update_check=yes --port=13080 --admin_port=8005 --clear_datastore=yes
Python command: /usr/bin/python2.7
INFO     2014-11-22 07:47:57,008 devappserver2.py:745] Skipping SDK update check.
Traceback (most recent call last):
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/dev_appserver.py", line 83, in <module>
    _run_file(__file__, globals())
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/dev_appserver.py", line 79, in _run_file
    execfile(_PATHS.script_file(script_name), globals_)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 997, in <module>
    main()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 990, in main
    dev_server.start(options)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 789, in start
    request_data, storage_path, options, configuration)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/devappserver2.py", line 888, in _create_api_server
    default_gcs_bucket_name=options.default_gcs_bucket_name)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/api_server.py", line 403, in setup_stubs
    logservice_stub.LogServiceStub(logs_path=logs_path))
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/logservice/logservice_stub.py", line 107, in __init__
    self._conn.execute(_REQUEST_LOG_CREATE)
sqlite3.DatabaseError: database disk image is malformed

当我运行我创建的另一个应用程序时,没有任何错误。 我尝试了一些基本的想法:
- 删除/重新添加应用程序 - 删除应用程序启动器并重新安装它 - 重新启动 Mac - 使用 grep 查找数据库可能在哪里
没有什么起作用。有什么建议吗?
1个回答

5
默认的日志数据库文件名是 log.db。它存储在您的应用程序存储目录中,该目录默认位于您的tempfile.gettempdir()目录中,命名为appengine.[appname].[userid]appname 部分取自您的 app.yaml(查找 application 条目),将 : 冒号替换为下划线,并删除最后一个 ~ 波浪线之前的所有内容(如果有)。
因此,如果您的应用程序名称为 foobar,用户名为 jbj,则损坏的 SQLite 数据库位于:
`python -c 'import tempfile;print tempfile.gettempdir()'`/appengine.foobar.jbj/log.db

在Mac OS X上,tempfile.gettempdir()返回的是一个哈希路径,在/var/folders下的某个位置;它只是从TMPDIR环境变量中提取而来,因此你应该能够简单地使用:

rm $TMPDIR/appengine.foobar.jbj/log.db

您可以安全地删除此文件,下次启动应用程序时它将重新创建。

只是想补充一下,我不得不从Google Launcher SDK重新启动应用程序:)。谢谢您提供的信息,非常有帮助:) - Khaled

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接