2016-02-02 6 views
9

現在、私はdjangoプロジェクトをGoogleアプリケーションエンジンにデプロイしました。 python manage.py migrateコマンドを実行して、Googleのクラウドインスタンスにauth_userテーブルを作成する必要があります。しかし、このコマンドをどこで実行するか分からない。Google Cloud SQLに対してDjango管理コマンドを実行する方法

+0

@HåkenLidどのように可能ですか? –

+0

どういう意味ですか? –

答えて

8

私の言うとおり、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)はprodに(または、あなたのローカルのMySQLサーバーにアクセスする場合)に設定していない環境変数SETTINGS_MODEを設定します。

3)ご使用のマシンから以下のコマンドを実行してください。

$ SETTINGS_MODE=prod python manage.py migrate 

あなたは、App Engineのドキュメントで詳細を見つけることができます - Management commandsAlternate development database and settingsを。

+0

私はDjango 1.9を使用していますが、* INSTANCE *の代わりに* HOST *を使用しなければなりませんでした。 –

+0

これを共有してくれてありがとう..それは私のために非常にうまくいった。私はこの技術を使って、Google App Engine Flexible Environment – kenju254

+0

で移行を実行している問題を解決しました。私はこの仕事をしているようには見えません。それは私がこれまでに見つけた唯一の理解可能で実用的な解決策のようです。私の唯一の問題は、第2段階「環境変数SETTINGS_MODEをprodに設定する」です。これは混乱します。どこで設定しますか? app.yaml(既に試してみました)? Googleコンソールのどこかに(すでに見て、私がどこで.. ..見つけることを試みた)またはsettings.py(しかしそれはあまり意味がありません)?すべての情報が役に立ちます。前もって感謝します。 – CarmenA

関連する問題