这是我在Google上进行的第一次Django部署。
部署后,所有静态内容都将正确呈现,但一旦请求命中ORM代码,它就会失败(服务器错误503)。我正在使用PostgreSQL,我认为我在settings.py和app.yaml上正确地链接了它
DB_HOST: '/cloudsql/my-app:us-central1:my-app-postgresql'.
DB_NAME: 'my-db' ...
我是否需要了解如何将Django PostgreSQL部署到App?在部署期间,将重新创建所有表和数据,对吗?
最后,我使用DEBUG = True进行部署,并查看ProgrammingError at / the "my-app_my-app" relationship does not exist.
如何将所有数据库导出到数据库?
基于这,看起来我将无法使用ORM。我一定要用"Django Nonrel“吗?
发布于 2020-08-02 19:54:45
在搜索时,由于文件cloud_sql_proxy.exe,数据库的传输似乎与代理连接的阶段相反。但是我删除了DB并继续这个步骤,但没有成功。
最后,我的解决方案包括两个步骤:
sudo docker ps并复制应用程序CONTAINER ID
sudo docker exec -it <CONTAINER ID> /bin/bash
python3 manage.py makemigrations
python3 manage.py migrate
python3 manage.py createsuperuser这将创建所有必要的表。如果本地postgreSql中没有任何数据,则一切都已完成,否则将执行第2步。
pg_dump -h localhost -U postgres my_database_name | gzip > backup.gz
·从你的桶上传文件backup.gz
·从SQL上的Postgres实例中,从桶中导入转储。别忘了把它从桶里删除,以防它在公用文件夹上。
发布于 2020-08-02 18:04:24
我今天和你有同样的问题,我解决了。
如果你像我一样,对所有的云东西都有点陌生,有一条规则需要记住,默认情况下,所有的东西都是锁着的,黑名单。这意味着,默认情况下,App服务无权连接到您的DB。这就是为什么你有503,因为请求被拒绝。
解决这一问题的2种方法。通过使用您DB的私有IP地址或公共IP。我选择私有IP,因为请求保留在我的VPC中,所以更安全。
在这里,GCP的文档
但要迅速:
它就像一种魅力!
PS :还有,如果你和我一样做了1000000次测试,别忘了删除你的应用程序的所有未使用的版本,因为我读到了$。
https://stackoverflow.com/questions/63210861
复制相似问题