복붙노트

[PYTHON] Google Cloud SQL에 대해 Django 관리 명령을 실행하는 방법

PYTHON

Google Cloud SQL에 대해 Django 관리 명령을 실행하는 방법

현재, 내 장고 프로젝트를 Google 앱 엔진에 배포했습니다. python manage.py migrate 명령을 실행하여 auth_user 테이블을 내 Google 클라우드 인스턴스에 만들어야합니다. 그러나이 명령을 어디에서 실행할 지 모릅니다.

해결법

  1. ==============================

    1.제대로한다면 App Engine (샌드 박스 환경)에서 실행되고 Cloud SQL을 사용합니다.

    제대로한다면 App Engine (샌드 박스 환경)에서 실행되고 Cloud SQL을 사용합니다.

    1) 아래에서 볼 수 있듯이 settings.py에서 데이터베이스를 구성하십시오.

    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) 환경 변수 SETTINGS_MODE를 prod로 설정하십시오 (또는 로컬 MySQL 서버에 액세스하려는 경우 설정하지 마십시오).

    3) 컴퓨터에서 아래 명령을 실행하십시오.

    $ SETTINGS_MODE=prod python manage.py migrate
    

    App Engine 설명서 (관리 명령 및 대체 개발 데이터베이스 및 설정)에서 자세한 내용을 확인할 수 있습니다.

  2. from https://stackoverflow.com/questions/35153942/how-to-run-django-management-commands-against-google-cloud-sql by cc-by-sa and MIT license