我有一个托管在Google Appengine和Google Cloud sql上的django应用程序作为数据库。我 https://cloud.google.com/appengine/docs/python/cloud-sql/django 点击此链接将数据库模式同步并迁移到 cloudsql。这对我来说很好用。但是当我今天尝试同步时,我收到如下所示的错误。
操作错误: 无法连接: https://www.googleapis.com/sql/v1/jdbc/openConnection?alt=proto 返回"未找到>
我的数据库设置为
if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine'):
# Running on production App Engine, so use a Google Cloud SQL database.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '/cloudsql/<projectname>:<instancename>',
'NAME': '<db-name>',
'USER': 'root',
}
}
elif os.getenv('SETTINGS_MODE') == 'prod':
# Running in development, but want to access the Google Cloud SQL instance in production.
DATABASES = {
'default': {
'ENGINE': 'google.appengine.ext.django.backends.rdbms',
'INSTANCE': '<projectname>:<instancename>',
'NAME': 'db-name',
'USER': 'root',
}
}
我更改了数据库设置,并在谷歌 api 控制台上授权了我的本地 IP 地址。现在它工作正常。
我的新数据库设置是
if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine'):
# Running on production App Engine, so use a Google Cloud SQL database.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '/cloudsql/<projectname>:<instancename>',
'NAME': '<db-name>',
'USER': 'root',
}
}
elif os.getenv('SETTINGS_MODE') == 'prod':
# Running in development, but want to access the Google Cloud SQL instance in production.
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '<instance-ip-address>',
'NAME': 'db-name',
'USER': 'root',
'PASSWORD': '<password>'
}
}