3

我将一个工作的谷歌应用程序引擎 repo 克隆到我的本地环境中并让它工作。后来我决定要部署到我自己的 GAE 应用程序,所以我将 app.yaml 中的名称更改为我新创建的应用程序中的名称。

但是当使用 GoogleAppEngineLauncher 启动它时,我收到了这个错误:

BadRequestError: app "dev~bandtasticnews" cannot access app "dev~noticiashacker"'s data

原始名称是 noticiashacker,新名称是 bandtasticnews,克隆的在线工作正常,但开发人员已损坏,如果我希望它在本地启动并在部署前返回,我必须将 app.yaml 上的名称更改为原始名称。

我的代码中没有更多行引用原始名称,我不知道它为什么要尝试检索它。

更新 这是 GoogleAppEngineLauncher 日志中显示的堆栈跟踪

*** Running dev_appserver with the following flags:
    --skip_sdk_update_check=yes --port=8080 --admin_port=8000 --clear_datastore=yes
Python command: /usr/bin/python2.7
INFO     2013-04-24 00:45:10,683 devappserver2.py:498] Skipping SDK update check.
WARNING  2013-04-24 00:45:10,690 api_server.py:328] Could not initialize images API; you are likely missing the Python "PIL" module.
INFO     2013-04-24 00:45:10,693 api_server.py:152] Starting API server at: http://localhost:50495
INFO     2013-04-24 00:45:10,700 dispatcher.py:150] Starting server "default" running at: http://localhost:8080
INFO     2013-04-24 00:45:10,706 admin_server.py:117] Starting admin server at: http://localhost:8000
/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/devappserver2/mtime_file_watcher.py:82: UserWarning: There are too many files in your application for changes in all of them to be monitored. You may have to restart the development server to see some changes to your files.
  'There are too many files in your application for '
ERROR    2013-04-24 00:45:17,489 webapp2.py:1528] app "dev~bandtasticnews" cannot access app "dev~noticiashacker"'s data
Traceback (most recent call last):
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.3/webapp2.py", line 1511, in __call__
    rv = self.handle_exception(request, response, e)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.3/webapp2.py", line 1505, in __call__
    rv = self.router.dispatch(request, response)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.3/webapp2.py", line 1253, in default_dispatcher
    return route.handler_adapter(request, response)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.3/webapp2.py", line 1077, in __call__
    return handler.dispatch()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.3/webapp2.py", line 547, in dispatch
    return self.handle_exception(e, self.app.debug)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.3/webapp2.py", line 545, in dispatch
    return method(*args, **kwargs)
  File "/Users/grillermo/c/BandtasticNews/Noticias-HAcker/handlers/MainHandler.py", line 85, in get
    self.response.out.write(template.render('templates/main.html', locals()))
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/template.py", line 92, in render
    return t.render(Context(template_dict))
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/template.py", line 172, in wrap_render
    return orig_render(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 173, in render
    return self._render(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 167, in _render
    return self.nodelist.render(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 794, in render
    bits.append(self.render_node(node, context))
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 807, in render_node
    return node.render(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/loader_tags.py", line 125, in render
    return compiled_parent._render(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 167, in _render
    return self.nodelist.render(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 794, in render
    bits.append(self.render_node(node, context))
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 807, in render_node
    return node.render(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/defaulttags.py", line 257, in render
    return self.nodelist_true.render(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 794, in render
    bits.append(self.render_node(node, context))
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 807, in render_node
    return node.render(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 842, in render
    output = self.filter_expression.resolve(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 551, in resolve
    obj = self.var.resolve(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 694, in resolve
    value = self._resolve_lookup(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 729, in _resolve_lookup
    current = current()
  File "/Users/grillermo/c/BandtasticNews/Noticias-HAcker/models.py", line 73, in sum_votes
    self.put()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/db/__init__.py", line 1070, in put
    return datastore.Put(self._entity, **kwargs)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/datastore.py", line 579, in Put
    return PutAsync(entities, **kwargs).get_result()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 604, in get_result
    return self.__get_result_hook(self)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/datastore/datastore_rpc.py", line 1569, in __put_hook
    self.check_rpc_success(rpc)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/datastore/datastore_rpc.py", line 1224, in check_rpc_success
    raise _ToDatastoreError(err)
BadRequestError: app "dev~bandtasticnews" cannot access app "dev~noticiashacker"'s data
INFO     2013-04-24 00:45:17,532 recording.py:673] Saved; key: __appstats__:017200, part: 157 bytes, full: 69853 bytes, overhead: 0.003 + 0.031; link: http://localhost:8080/_ah/stats/details?time=1366764317201
ERROR    2013-04-24 00:45:17,538 cgi.py:121] Traceback (most recent call last):
  File "/Users/grillermo/c/BandtasticNews/Noticias-HAcker/main.py", line 91, in <module>
    main()
  File "/Users/grillermo/c/BandtasticNews/Noticias-HAcker/main.py", line 86, in main
    util.run_wsgi_app(application)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/util.py", line 98, in run_wsgi_app
    run_bare_wsgi_app(add_wsgi_middleware(application))
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/util.py", line 118, in run_bare_wsgi_app
    for data in result:
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/appstats/recording.py", line 1284, in appstats_wsgi_wrapper
    result = app(environ, appstats_start_response)
  File "/Users/grillermo/c/BandtasticNews/Noticias-HAcker/gaesessions/__init__.py", line 451, in __call__
    return self.app(environ, my_start_response)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.3/webapp2.py", line 1519, in __call__
    response = self._internal_error(e)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.3/webapp2.py", line 1511, in __call__
    rv = self.handle_exception(request, response, e)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.3/webapp2.py", line 1505, in __call__
    rv = self.router.dispatch(request, response)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.3/webapp2.py", line 1253, in default_dispatcher
    return route.handler_adapter(request, response)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.3/webapp2.py", line 1077, in __call__
    return handler.dispatch()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.3/webapp2.py", line 547, in dispatch
    return self.handle_exception(e, self.app.debug)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/webapp2-2.3/webapp2.py", line 545, in dispatch
    return method(*args, **kwargs)
  File "/Users/grillermo/c/BandtasticNews/Noticias-HAcker/handlers/MainHandler.py", line 85, in get
    self.response.out.write(template.render('templates/main.html', locals()))
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/template.py", line 92, in render
    return t.render(Context(template_dict))
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/template.py", line 172, in wrap_render
    return orig_render(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 173, in render
    return self._render(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 167, in _render
    return self.nodelist.render(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 794, in render
    bits.append(self.render_node(node, context))
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 807, in render_node
    return node.render(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/loader_tags.py", line 125, in render
    return compiled_parent._render(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 167, in _render
    return self.nodelist.render(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 794, in render
    bits.append(self.render_node(node, context))
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 807, in render_node
    return node.render(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/defaulttags.py", line 257, in render
    return self.nodelist_true.render(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 794, in render
    bits.append(self.render_node(node, context))
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 807, in render_node
    return node.render(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 842, in render
    output = self.filter_expression.resolve(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 551, in resolve
    obj = self.var.resolve(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 694, in resolve
    value = self._resolve_lookup(context)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/_internal/django/template/__init__.py", line 729, in _resolve_lookup
    current = current()
  File "/Users/grillermo/c/BandtasticNews/Noticias-HAcker/models.py", line 73, in sum_votes
    self.put()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/db/__init__.py", line 1070, in put
    return datastore.Put(self._entity, **kwargs)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/datastore.py", line 579, in Put
    return PutAsync(entities, **kwargs).get_result()
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/api/apiproxy_stub_map.py", line 604, in get_result
    return self.__get_result_hook(self)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/datastore/datastore_rpc.py", line 1569, in __put_hook
    self.check_rpc_success(rpc)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/datastore/datastore_rpc.py", line 1224, in check_rpc_success
    raise _ToDatastoreError(err)
BadRequestError: app "dev~bandtasticnews" cannot access app "dev~noticiashacker"'s data

更新在另一台计算机上尝试过,结果是一样的,但这次我尝试运行该应用程序,而没有名称 noticiashacker。

更新 app.yaml

application: bandtasticnews
version: 5
runtime: python27
api_version: 1
threadsafe: false

libraries:
- name: django
  version: "1.3"

builtins:
- appstats: on
- remote_api: on

handlers:
- url: /favicon.ico
  static_files: static/favicon.ico
  upload: static/favicon.ico
- url: /robots.txt
  static_files: static/robots.txt
  upload: static/robots.txt
- url: /reports/.*
  script: reports.py
  login: admin
- url: /tasks/send_top_to_twitter
  script: crons.py
  login: admin
- url: /tasks/send_to_killmetrics
  script: crons.py
  login: admin
- url: /tasks/update_top_karma
  script: crons.py
  login: admin
- url: /tasks/cleanup_sessions
  script: crons.py
  login: admin
- url: /favicon.ico
  static_files: static/favicon.ico
  upload: static/favicon.ico   
- url: /robots.txt             
  static_files: static/robots.txt 
  upload: static/robots.txt    
- url: /static
  static_dir: static
- url: /admin/.*
  script: admin.py
  login: admin
- url: .*
  script: main.py
4

4 回答 4

2

也许试试这个,首先将您的应用程序下载到一个新目录

appcfg.py download_app -A <your_app_id> -V <your_app_version> <output-dir>

使用您要使用的应用程序 ID 创建一个新的 app.yaml(不要复制它,而是新建一个),然后运行 ​​dev_appserver ./

祝你好运

于 2013-04-28T18:02:39.937 回答
0

您在 dev 数据存储中拥有来自旧 appid 的数据。

启动开发服务器时,您需要使用 --clear_datastore 清除本地数据存储。不确定您如何在启动器中执行此操作(永远不要使用它)

于 2013-04-23T23:34:12.800 回答
0

尝试登录管理控制台,

http://localhost:8888/_ah/admin 

在保留原始名称的同时,您可以在数据存储查看器中看到一些数据,将其清除(对于所有类型的实体),停止开发服务器并将名称更改为新名称,然后重新开始。它应该工作。

问题在于命名空间,谷歌在多个应用程序之间分离数据的方式。您的一些数据保留在未删除的旧命名空间中。

于 2013-04-29T00:53:19.380 回答
0

就我而言,只需删除 cookie 即可解决问题。之后我发现了这个解决方案,我观察到 Chrome 隐身模式没有问题。

于 2015-06-26T07:48:19.573 回答