我有一个Google App Engine应用,而且我正在使用Vagrant运行Windows。我有一个Ubuntu安装,我通过vagrant ssh访问。在那台机器上,我安装了适用于Python的Google App Engine SDK,我可以使用以下代码成功部署我的应用程序:
appcfg.py update myapp --oauth2 --noauth_local_webserver
--noauth_local_parameter
允许我复制oauth URL并粘贴到我的Windows机器上的浏览器中,因为在Linux机器上我没有GUI。一切都很好。
但现在我想使用Django manage.py syncdb
命令在Google Cloud SQL中创建表格。问题是,当我执行该命令时,基于文本的w3n浏览器启动授权,然后我收到浏览器不支持javascript的错误消息。
我希望使用--noauth_local_webserver标志运行manage.py
命令,但manage.py
命令不支持此命令。我怎么解决这个问题?我已经安装了一个带有GUI的Ubuntu虚拟机,并为该应用程序提供了权限,manage.py在该机器上工作正常,但是当我尝试在Vagrant(非GUI)机器上执行该命令时,它仍然想要打开浏览器许可。
答案 0 :(得分:0)
嗯,我手动将oauth .dat
文件复制到vagrant服务器,manage.py syncdb
现在正在运行,但网站仍然无法在浏览器中连接;它说:
No valid OAuth 2.0 credentials. Before using the Google SQL Service backend on dev_appserver, you must first run "manage.py syncdb" and proceed through the given instructions to fetch an OAuth 2.0 token.
它似乎与here的错误相同。在我的例子中,似乎没有设置必要的GOOGLE_SQL_OAUTH2_REFRESH_TOKEN
环境变量。我从.dat
文件中复制了此刷新令牌,并将其设置在app.yaml:
env_variables:
GOOGLE_SQL_OAUTH2_REFRESH_TOKEN: "..."
现在一切正常。