2016-02-02 38 views

cevap

8

Doğru alırsam, uygulamanız App Engine (sanal alanlı ortam) üzerinde çalışır ve Cloud SQL kullanır.

1) Veritabanınızı aşağıda görebileceğiniz gibi settings.py olarak yapılandırın. siz) yerel MySQL sunucusuna erişmek istiyorsanız

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/project-id:instance-name', 
      'NAME': 'database-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', 
      'INSTANCE': 'cloud-sql-instance-ip-address', 
      'NAME': 'database-name', 
      'USER': 'root', 
      'PASSWORD': 'password', 
     } 
    } 
else: 
    # Running in development, so use a local MySQL database. 
    DATABASES = { 
     'default': { 
      'ENGINE': 'django.db.backends.mysql', 
      'NAME': 'database-name', 
      'USER': 'username', 
      'PASSWORD': 'password', 
     } 
    } 

2) Set ortam değişkeni SETTINGS_MODE eşya (veya set yoktur.

3) Aşağıdaki komutu makinenizden çalıştırın.

$ SETTINGS_MODE=prod python manage.py migrate 

App Engine belgelerinde daha fazla ayrıntı bulabilirsiniz - Management commands ve Alternate development database and settings.

+0

sadece Yönetilen VM örnekleri SSH olabilir Django 1.9 kullanıyorum ve * HOST kullanmak zorunda kaldı. –

+0

Bunu paylaştığınız için teşekkürler .. Benim için oldukça iyi çalıştı. Google App Engine Esnek Ortamı – kenju254

+0

Merhaba'da geçişi çalıştırma sorunumu çözmek için bu tekniği kullandım. Bu işi yapamıyorum. Ve şimdiye kadar bulduğum tek anlaşılabilir ve yapılabilir çözüm gibi görünüyor. Tek sorunum 2 adım "SETTINGS_MODE ortam değişkenini prod olarak ayarla" - bu kafa karıştırıcı. Nereyi kurabilirim? App.yaml'de (zaten denediniz)? Google konsolunda bir yerde (zaten nerede bulabildiğimi araştırdım ve bulmaya çalıştım ..)? Veya settings.py'de (ama benim için fazla anlam ifade etmiyor)? Herhangi bir bilgi yardımcı olacaktır. Şimdiden teşekkürler. – CarmenA

İlgili konular