2017-09-21 17 views
0

Google App Engineにdjango-backendを使用してWebサイトをデプロイします。私は彼らのtutorialに従った。私はMySQLを使用して私のローカルサーバー上でWebサイトを実行し、それは完全に実行されます。 はGoogle App Engine上で、それを展開するとき、それは私に次のエラーを与える:ここでGoogle App Engine Django:デプロイ後にGoogleクラウドSQLで表が作成されない

​​

は私のapp.yamlである:ここでは

# [START django_app] 
runtime: python27 
api_version: 1 
threadsafe: yes 

handlers: 
- url: /static 
    static_dir: static/ 
- url: .* 
    script: wt.wsgi.application 

# Only pure Python libraries can be vendored 
# Python libraries that use C extensions can 
# only be included if they are part of the App Engine SDK 
# Using Third Party Libraries: https://cloud.google.com/appengine/docs/python/tools/using-libraries-python-27 
libraries: 
- name: MySQLdb 
    version: 1.2.5 
- name: django 
    version: "1.11" 

env_variables: 
    CLOUDSQL_CONNECTION_NAME: 'copied perfectly from google cloud sql instance' 
    CLOUDSQL_USER: username 
    CLOUDSQL_PASSWORD: password 

# [END django_app] 

# Google App Engine limits application deployments to 10,000 uploaded files per 
# version. The skip_files section allows us to skip virtual environment files 
# to meet this requirement. The first 5 are the default regular expressions to 
# skip, while the last one is for all env/ files. 
skip_files: 
- ^(.*/)?#.*#$ 
- ^(.*/)?.*~$ 
- ^(.*/)?.*\.py[co]$ 
- ^(.*/)?.*/RCS/.*$ 
- ^(.*/)?\..*$ 
- ^env/.*$ 

は私のsettings.pyです:

if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine'): 
    DATABASES = { 
     'default': { 
      'ENGINE': 'django.db.backends.mysql', 
      'NAME': 'database_name', 
      'USER': 'user_name', 
      'PASSWORD': 'password', 
      'HOST': '/cloudsql/copied perfectly from google cloud sql instance', 

     } 
    } 
else: 

    DATABASES = { 
      'default': { 
       'ENGINE': 'django.db.backends.mysql', 
       'HOST': '127.0.0.1', 
       'PORT': '3306', 
       'NAME': 'database_name', 
       'USER': 'username', 
       'PASSWORD': 'password', 
         } 
       }   

親切に私を助けてください。私のモデルやテーブルがGoogle App Engineで利用できない理由はわかりません。前もって感謝します!

答えて

1

あなたは手順を実行したと言いました。マイグレーションを作成して実行したときにCloud SQLプロキシを実行しましたか?それが実行されていないか、正しく構成されていないと、マイグレーションがローカルデータベースで正常に実行されたが、Cloudデータベースに適用されなかった理由が説明されます。

+1

'cloud_sql_proxy.exe -instances =" [YOUR_INSTANCE_CONNECTION_NAME] "= tcp:3306' "この手順では、ローカルコンピュータからローカルのCloud SQLインスタンスへの接続を確立しますクラウドSQLプロキシは、アプリケーションをローカルでテストするたびに実行されるようにしてください。 アプリケーションをローカルでテストする必要がある場合のみ、Cloud SQLプロキシを使用する必要があると言います。 – Maverick7

+0

ありがとうございます!あなたは正しかった! Googleはドキュメントをより明確にする必要があります... – Maverick7

0
  1. Google SQLコンソールからデータベースを削除します。
  2. すべてのマイグレーションを削除し、もう一度移行python manage.py makemigrations
  3. python manage.py migrate
  4. が再びアプリケーションとテストを展開作成します。
+0

私はあなたが言ったようにしましたが、私はまだ同じエラーが発生しています。私はmakemigrationsとマイグレーション時に私のローカルデータベースではなくGoogle Cloud Database上で新しい移行を作成しています。 gcloud app deploy'前と同じものを展開しています。 – Maverick7

関連する問題