我在本地运行一个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'
答案 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 SQL和Setting up your local environment
的答案