2

是否有一个步骤让我错过了,或许是Google Cloud SQL的“syncdb”步骤?我读了这两: Using Google Cloud SQLDjango和Google Cloud不存在DatabaseError表SQL

Django Support

我的应用程序可以访问谷歌云SQL,但我想我只需要创建在谷歌云SQL表。什么是这样做的命令?也许这会解决它。运行python manage.py syncdb更新本地主机上的SQL,但我想更新Google Cloud SQl上的数据库。

编辑:下面是我的项目的Google云SQL设置和settings.py。 Google Cloud SQL settings settings.py

+0

您能否显示您的settings.file和Google配置?我认为你没有设置正确的数据库。 –

+0

你必须编辑你的设置,以便它使用远程SQL数据库而不是本地的它们syncdb将更新远程数据库 – user2266449

+0

谢谢!我应该如何更改当前的设置?我将它们添加到了问题中。 – Sticky

回答

0

有三种类型的连接:! 1)你的dev的机器到本地MySQL实例(简易) 2)你的应用程序引擎实例(在谷歌云)到谷歌云SQL实例(同文件中描述的方式) 3)您的开发机器为cloudsql实例(硬盘):鼓励的方式是获取静态IP(一段时间不花费您多少钱),并使用IP连接cloudsql实例。

Django代码[3]应该允许您在上述情况之间切换。命令[1]允许您将syncdb复制到cloudsql实例。如果你希望你的Django模型在CLOUDSQL情况下处理数据,您可以添加配置[2]的app.yaml

[1]

SETTING_MODE=prod ./manage.py syncdb 

[2]

env_variables: 
    SETTINGS_MODE: prod 

[3 ]

import os 
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/your-project-id:your-instance-name', 
      'NAME': 'django_test', 
      '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': 'static-ip-of-cloudsql-instance', 
      'PORT': '3306', 
      'NAME': 'django_test', 
      'USER': 'username', 
      'PASSWORD': 'password' 
     } 
    } 
else: 
    # Running in development, so use a local MySQL database. 
    DATABASES = { 
     'default': { 
      'ENGINE': 'django.db.backends.mysql', 
      'NAME': 'django_test', 
      'USER': 'root', 
      'PASSWORD': 'root', 
     } 
    } 
+0

我在哪里使用[1]命令?通过文件夹中的命令提示符?此外,这是一个Linux命令:我可以转换到Windows,但仍然。 – Sticky

+1

更新:我将env_variable添加到app.yaml,但仍将syncdb执行到localhost。我也不知道[1]命令到Windows的转换显然是因为执行'python SETTINGS_MODE = prod manage.py syncdb'不起作用。 – Sticky