我有一个可以使用Heroku部署的Django项目。我无法在GAE上部署应用程序。当我在本地运行它时,我收到一个错误,指的是一个不正确配置的数据库后端。
任何帮助都将不胜感激。
错误:
<div id="textContainer"> <div id="myText">Hello</div> </div>
的app.yaml
...
raise ImproperlyConfigured(error_msg)
ImproperlyConfigured: 'postgresql' isn't an available database backend.
Try using django.db.backends.XXX, where XXX is one of:
'dummy', 'mysql', 'oracle', 'postgresql_psycopg2', 'sqlite3' <br>
Error was: No module named postgresql.base
...
settings.py
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: main.app
libraries:
- name: django
version: "latest"
beta_settings:
cloud_sql_instances: <cloudsql-connection-string>
如果我将引擎更改为
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'xxx',
'USER': '*****',
'PASSWORD': '******',
'HOST': 'xx.xx.xx.xx',
'PORT': '5432',
}
}
我收到错误:
ImportError:没有名为psycopg2.extensions的模块
pip冻结返回:
Django == 1.11.4 psycopg2 == 2.7.3.1 pytz == 2017.2
答案 0 :(得分:0)
GAE标准环境不允许使用psycopg2,似乎我原来的app.yaml(上图)指示GAE分配标准环境。实例。 Dan的评论(上文)强调了这种脱节。这里的正确程序是1)更改应用程序以便能够在GAE标准上部署,或2)更改app.yaml以在GAE flex上部署(根据我目前的理解)。
以下几页似乎对第二个选项(https://cloud.google.com/appengine/docs/flexible/python/upgrading)和(https://cloud.google.com/appengine/docs/flexible/python/testing-and-deploying-your-app)提供了帮助。