設置Django連接到Google Cloud SQL(MYSQL)

設置Django連接到Google Cloud SQL(MYSQL)

環境:

python2.7
GAE
Django1.5

目的:

將開發的Table反映到Google的數據庫上。
然後上傳到GAE生產環境時,可以正常使用數據庫。

官方教程

https://cloud.google.com/appengine/docs/python/cloud-sql/django

設置數據庫連接

Setting.py

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',
            'INSTANCE': 'your-instance-ip-address',
            'NAME': 'django_test',
            'USER': 'root',
            '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': 'password',
        }
    }

其中第一段爲在GAE服務器端的連接GAE數據庫的執行代碼。
第二段爲本地直接連接到GAE數據庫的代碼。
第三段爲本地連接本地數據庫的代碼。
下面具體設置第二段

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': 'your-instance-ip-address', <- 關鍵字爲HOST,設爲數據庫所在的IP地址
            'NAME': 'django_test',  <- 數據庫名,需要在GAE上添加完畢
            'USER': 'root', <- 在GAE上設置完畢可以從本地訪問的用戶
            'PASSWORD': 'password', <- 密碼
        }
    }

同步Table的步驟

  • 在GAE上添加數據庫,添加本地IP,設置可以從本地的訪問
  • 在GAE上設置可以從本地訪問的用戶,密碼
  • 本地設置環境變量 SETTINGS_MODE=prod
  • 執行同步數據庫 ./manage.py syncdb

執行完畢後,顯示產生各個Table,將Django的Model反映到GAE的數據庫上,
即可以現在使用GAE的數據庫了。
上傳到GAE服務器後,第一種方式也是可以正常使用了。


發佈了34 篇原創文章 · 獲贊 43 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章