首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Django PostgreSQL数据库部署到Google (App )

如何将Django PostgreSQL数据库部署到Google (App )
EN

Stack Overflow用户
提问于 2020-08-01 23:03:20
回答 2查看 903关注 0票数 0

这是我在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“吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-02 19:54:45

在搜索时,由于文件cloud_sql_proxy.exe,数据库的传输似乎与代理连接的阶段相反。但是我删除了DB并继续这个步骤,但没有成功。

最后,我的解决方案包括两个步骤:

  1. 部署后,在SSH中连接到: ·来自Google > App >Instance> SSH >显示gcloud命令(更快)并复制命令。 ·在你的your上: 然后使用复制的命令连接到实例: 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步。

  1. 转储数据库并将其导入Cloud (文档) ·从本地转储postgre数据库: pg_dump -h localhost -U postgres my_database_name | gzip > backup.gz ·从你的桶上传文件backup.gz ·从SQL上的Postgres实例中,从桶中导入转储。

别忘了把它从桶里删除,以防它在公用文件夹上。

票数 2
EN

Stack Overflow用户

发布于 2020-08-02 18:04:24

我今天和你有同样的问题,我解决了。

如果你像我一样,对所有的云东西都有点陌生,有一条规则需要记住,默认情况下,所有的东西都是锁着的,黑名单。这意味着,默认情况下,App服务无权连接到您的DB。这就是为什么你有503,因为请求被拒绝。

解决这一问题的2种方法。通过使用您DB的私有IP地址或公共IP。我选择私有IP,因为请求保留在我的VPC中,所以更安全。

在这里,GCP的文档

但要迅速:

  1. 我有一个与我的项目相同的地区的创建 VPC连接器。
  2. 我已经将VPC连接器添加到我的app.yml文件中。 projects/my-project-12345/locations/europe-west1/connectors/my-connector : vpc_access_connector:名称:

它就像一种魅力!

PS :还有,如果你和我一样做了1000000次测试,别忘了删除你的应用程序的所有未使用的版本,因为我读到了$。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63210861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档