【发布时间】:2017-09-21 17:44:32
【问题描述】:
我正在谷歌应用引擎上部署一个带有 django-backend 的网站。我关注了他们的tutorial。我已经使用 MySQL 在本地服务器上运行了该网站,并且运行良好。 在 Google App Engine 上部署它时出现以下错误:
ProgrammingError "Table 'clouddatabasename'.'appname'_'modelname' doesn't exist"
这是我的 app.yaml:
# [START django_app]
runtime: python27
api_version: 1
threadsafe: yes
handlers:
- url: /static
static_dir: static/
- url: .*
script: wt.wsgi.application
# Only pure Python libraries can be vendored
# Python libraries that use C extensions can
# only be included if they are part of the App Engine SDK
# Using Third Party Libraries: https://cloud.google.com/appengine/docs/python/tools/using-libraries-python-27
libraries:
- name: MySQLdb
version: 1.2.5
- name: django
version: "1.11"
env_variables:
CLOUDSQL_CONNECTION_NAME: 'copied perfectly from google cloud sql instance'
CLOUDSQL_USER: username
CLOUDSQL_PASSWORD: password
# [END django_app]
# Google App Engine limits application deployments to 10,000 uploaded files per
# version. The skip_files section allows us to skip virtual environment files
# to meet this requirement. The first 5 are the default regular expressions to
# skip, while the last one is for all env/ files.
skip_files:
- ^(.*/)?#.*#$
- ^(.*/)?.*~$
- ^(.*/)?.*\.py[co]$
- ^(.*/)?.*/RCS/.*$
- ^(.*/)?\..*$
- ^env/.*$
这是我的 settings.py:
if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine'):
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'database_name',
'USER': 'user_name',
'PASSWORD': 'password',
'HOST': '/cloudsql/copied perfectly from google cloud sql instance',
}
}
else:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1',
'PORT': '3306',
'NAME': 'database_name',
'USER': 'username',
'PASSWORD': 'password',
}
}
请帮助我。我不知道为什么我的模型/表格在 Google App 引擎上不可用。提前致谢!
【问题讨论】:
标签: python mysql django google-app-engine google-cloud-sql