2016-02-02 11 views
9

Attualmente, ho distribuito il mio progetto django sul motore di app di google. Devo eseguire il comando python manage.py migrate in modo che la tabella auth_user debba essere creata nella mia istanza di Google Cloud. Ma non so dove eseguire questo comando.Come eseguire i comandi di gestione Django contro Google Cloud SQL

+0

@ HåkenLid come è possibile? –

+0

Cosa intendi? –

risposta

8

Se ho capito bene, la tua app funziona su App Engine (ambiente sandboxed) e utilizza Cloud SQL.

1) Configura il tuo database in settings.py come puoi vedere di seguito.

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) Impostare SETTINGS_MODE variabile di ambiente prod (o non impostato, se si desidera accedere al server MySQL locale).

3) Eseguire il comando riportato di seguito dalla macchina.

$ SETTINGS_MODE=prod python manage.py migrate 

Potete trovare maggiori dettagli in App Engine documentazione - Management commands e Alternate development database and settings.

+0

Sto utilizzando Django 1.9 e ho dovuto usare * HOST * invece di * INSTANCE *. –

+0

Grazie per aver condiviso questo .. Ha funzionato abbastanza bene per me. Ho usato questa tecnica per risolvere il mio problema di eseguire le migrazioni sull'ambiente flessibile di Google App Engine – kenju254

+0

Ciao. Non riesco a farlo funzionare. E sembra l'unica soluzione comprensibile e fattibile che ho trovato finora. Il mio unico problema è il 2 ° passaggio "Imposta la variabile d'ambiente SETTINGS_MODE to prod" - questo è fonte di confusione. Dove lo metto? In app.yaml (l'hai già provato)? Da qualche parte in google console (già guardato e cercato di trovare dove potrei ..)? O in settings.py (ma non ha molto senso per me)? Qualsiasi informazione potrebbe aiutare. Grazie in anticipo. – CarmenA

Problemi correlati