如何在Google App Engine标准环境中运行文件我的文件Django / python(manage.py,...)

时间:2017-05-01 04:56:07

标签: python django git google-app-engine

我在本地运行一个Django python应用程序,但是当我在Google App Engine中部署它时,我迷失了。 事实上,我习惯于在当地运行

python manage.py makemigrations
python manage.py migrate

在Google App Engine上,我无法在Google Shell中找到这些文件。我使用BitBucket作为回购和

gcloud app deploy

从repo BitBucket部署代码。

但是,当我进入Cloud Shell时,我无法找到运行migrate命令的文件。 我可以在当地结账......我做了,但他们不是"相同"文件...

在云存储中,我可以看到2个项目,但我可以在Cloud Shell中找到它们。 hiking-164708.appspot.com staging.hiking-164708.appspot.com

我想运行migrate cmd,因为我的/ admin有问题,其他TABLE工作......

所以我的问题: 我的manage.py文件在哪里?

这是我的app.yaml

runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /.*
script: main.application

libraries:

- name: django
version: "1.4"
- name: MySQLdb
version: "latest"

env_variables:
DJANGO_SETTINGS_MODULE: 'ghiking.settings'

1 个答案:

答案 0 :(得分:0)

我的理解是您从连接到Cloud SQL实例的开发计算机上运行迁移。

1)扩展settings.py

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',
    }
}

2)针对Cloud SQL运行迁移

* nix -

$ SETTINGS_MODE=prod python manage.py migrate

set SETTINGS_MODE=prod
python manage.py migrate

另请参阅How to run Django management commands against Google Cloud SQLSetting up your local environment

的答案