我想将我的站点从第一代云SQL实例迁移到第二代云SQL示例,这是旧的配置:
DATABASES['[DATABASE_NAME]'] = {
'ENGINE': 'google.appengine.ext.django.backends.rdbms',
'INSTANCE': '[PROJECT_ID]:[INSTANCE_ID_1stGEN]',
'NAME': '[DATABASE_NAME]',
'USER': [MY_USER],
'PASSWORD': [MY_PASSWORD],
}
这很好用,现在我正在尝试这个代码:
DATABASES['[DATABASE_NAME]'] = {
'ENGINE': 'django.db.backends.mysql',
'HOST': '/cloudsql/[PROJECT_NAME]:[REGION]:[INSTANCE_ID]',
'NAME': '[DATABASE_NAME]',
'USER': [MY_USER],
'PASSWORD': [MY_PASSWORD]
}
这个代码
DATABASES['[DATABASE_NAME]'] = { # 2da gen no funciono error COUNT_ROWS
'ENGINE': 'django.db.backends.mysql',
'HOST': '[PROJECT_ID]:[REGION]:[INSTANCE_ID]',
'NAME': '[DATABASE_NAME]',
'USER': [MY_USER],
'PASSWORD': [MY_PASSWORD]
}
这就是错误:
AttributeError at /
'module' object has no attribute 'FOUND_ROWS'
/base/alloc/tmpfs/dynamic_runtimes/python27g/79cfdbb680326abd/python27/python27_lib/versions/third_party/django-1.5/django/db/backends/mysql/base.py in _cursor
kwargs['client_flag'] = CLIENT.FOUND_ROWS
我需要你的帮助。
Django版本是1.5是非常旧的
我发现一个错误,ENGINE错误,我用google.appengine.ext.django.backends.rdbms
:替换了它
DATABASES['[DATABASE_NAME]'] = {
'ENGINE': 'google.appengine.ext.django.backends.rdbms',
'HOST': '/cloudsql/[PROJECT_ID]:[REGION]:[INSTANCE_ID]',
'NAME': '[DATABASE_NAME]',
'USER': [MY_USER],
'PASSWORD': [MY_PASSWORD]
}
但它仍然失败,现在它说需要一个INSTANCE密钥,然后我用INSTANCE:替换HOST
DATABASES['[DATABASE_NAME]'] = {
'ENGINE': 'google.appengine.ext.django.backends.rdbms',
'INSTANCE': '/cloudsql/[PROJECT_ID]:[REGION]:[INSTANCE_ID]',
'NAME': '[DATABASE_NAME]',
'USER': [MY_USER],
'PASSWORD': [MY_PASSWORD]
}
没有什么
DATABASES['[DATABASE_NAME]'] = {
'ENGINE': 'google.appengine.ext.django.backends.rdbms',
'INSTANCE': '[PROJECT_ID]:[REGION]:[INSTANCE_ID]',
'NAME': '[DATABASE_NAME]',
'USER': MY_USER,
'PASSWORD':MY_PASSWORD
}
尝试这个,现在另一个错误:
InternalError at /
(0, u'Not authorized to access instance: [PROJECT_ID]:[REGION]:[INSTANCE_ID]')
/base/alloc/tmpfs/dynamic_runtimes/python27g/79cfdbb680326abd/python27/python27_lib/versions/1/google/storage/speckle/python/api/rdbms.py in MakeRequest
request.request_id = self._idempotent_request_id
response = self._MakeRetriableRequest(stub_method, request)
else:
response = self.MakeRequestImpl(stub_method, request)
if (hasattr(response, 'sql_exception') and
response.HasField('sql_exception')):
raise _ToDbApiException(response.sql_exception) ...
return response
def _MakeRetriableRequest(self, stub_method, request):
"""Makes a retriable request.
添加SSL/TSL配置:
DATABASES['[DATABASE_NAME]'] = {
'ENGINE': 'google.appengine.ext.django.backends.rdbms',
'INSTANCE': '[PROJECT_ID]:[REGION]:[INSTANCE_ID]',
'NAME': '[DATABASE_NAME]',
'USER': [MY_USER],
'PASSWORD': [MY_PASSWORD],
'OPTIONS': {'ssl': {
'key': '/servidor/[INSTANCE_ID]/client-key.pem',
'cert': '/servidor/[INSTANCE_ID]/client-cert.pem',
'ca': '/servidor/[INSTANCE_ID]/client-ca.pem',
}}
我仍然会犯同样的错误。
证书正在运行,MySQL工作台没有问题。
rdbms库将无法使用文档中所述的升级后的第二代云SQL实例。为了将Sencond Generation Cloud SQL实例连接到App Engine Standard应用程序,请确保您的服务帐户具有正确的权限并使用Unix域套接字。所有相关信息都可以在这里找到。