Obecnie wdrożyłem mój projekt django na silniku aplikacji Google. Muszę uruchomić polecenie python manage.py migrate
, aby tabela auth_user
została utworzona w mojej instancji chmury Google. Ale nie wiem, gdzie uruchomić to polecenie.Jak uruchomić polecenia zarządzania Django przeciwko Google Cloud SQL
Odpowiedz
Jeśli dobrze się spisuję, twoja aplikacja działa w App Engine (środowisko sandboxed) i używa Cloud SQL.
1) Skonfiguruj swoją bazę danych pod numerem settings.py
, jak widać poniżej.
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) została ustawiona zmienna środowiskowa SETTINGS_MODE do prod (lub nie ustawiony, jeśli chcesz uzyskać dostęp do lokalnego serwera MySQL).
3) Uruchom poniższe polecenie z urządzenia.
$ SETTINGS_MODE=prod python manage.py migrate
można znaleźć więcej szczegółów w dokumentacji App Engine - Management commands i Alternate development database and settings.
Używam Django 1.9 i musiałem użyć * HOST * zamiast * INSTANCE *. –
Dzięki za podzielenie się tym .. To całkiem dobrze mi poszło. Użyłem tej techniki do rozwiązania mojego problemu z uruchomieniem migracji w Google App Engine Flexible Environment – kenju254
Witam. Nie mogę tego zrobić. I wydaje się, że jedynym zrozumiałym i wykonalnym rozwiązaniem, jakie znalazłem do tej pory. Mój jedyny problem to drugi krok "Ustaw zmienną środowiskową SETTINGS_MODE na prod" - jest to mylące. Gdzie to ustawić? W app.yaml (próbował już)? Gdzieś w konsoli Google (już wyglądał i próbował znaleźć, gdzie mogłem ..)? Lub w settings.py (ale nie ma to dla mnie większego sensu)? Wszelkie informacje pomogłyby. Z góry dziękuję. – CarmenA
@ HåkenLid jak to możliwe? –
Co masz na myśli? –