Google App Engine(GAE)配置不正确的数据库

时间:2017-08-28 20:24:27

标签: django google-app-engine pycharm

我有一个可以使用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

1 个答案:

答案 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)提供了帮助。

相关问题