Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to run Django management commands against Google Cloud SQL

Currently , I have deployed my django project on google app engine. I need to run python manage.py migrate command so that auth_user table should be created on my google cloud instance . But don't know where to run this command.

like image 725
Avinash Raj Avatar asked Feb 02 '16 12:02

Avinash Raj


People also ask

Does Google Cloud support Django?

Django apps that run on Google Cloud are running on the same infrastructure that powers all of Google's products, which generally improves the application's ability to adapt to a variable workload.


1 Answers

If I get it right, your app runs on App Engine (sandboxed environment) and uses Cloud SQL.

1) Configure your database in settings.py as you can see below.

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 environment variable SETTINGS_MODE to prod (or do not set if you want to access your local MySQL server).

3) Run the below command from your machine.

$ SETTINGS_MODE=prod python manage.py migrate

You can find more details in App Engine documentation - Management commands and Alternate development database and settings.

like image 135
pgiecek Avatar answered Oct 13 '22 21:10

pgiecek