【问题标题】:How to include migrate command while deploying django application in gae如何在 gae 中部署 django 应用程序时包含迁移命令
【发布时间】:2019-04-04 06:01:45
【问题描述】:

我已经在灵活的应用引擎中部署了 django 应用程序。

我可以使用 cloud_sql_proxy 运行迁移。但我想添加迁移步骤作为部署的一部分。我在 app.yaml 文件中的哪里指定? 也试过了

gcloud beta app gen-config --custom

创建 docker 文件。在 docker 文件中添加迁移命令时,收到以下错误:

could not connect to server: Cannot assign requested address
Is the server running on host "localhost" (::1) and accepting
TCP/IP connections on port 5432?

Settings.py

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'test',
'USER': 'test',
'PASSWORD': 'password',
'PORT': '5432',
'HOST': 'connection-name',
}}

app.yaml

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT wsgi

beta_settings:
  cloud_sql_instances: connection-name

runtime_config:
  python_version: 3

请建议添加迁移命令的方法。

【问题讨论】:

    标签: django database google-app-engine psql gcloud


    【解决方案1】:

    您不能将 migrate 命令添加为部署过程的一部分。 app.yaml 文件仅用于应用引擎相关配置。因此,您可以做的是在本地机器中连接您的 Google Cloud SQL 实例并运行 migrate 命令。

    其他选项是设置持续集成。您可以访问link 了解如何在 Travis 上设置 CI/CD。

    【讨论】:

    • 是的,docker 是 gcloud appengine 的完美选择。但是如果你想使用它,那么你必须使用 gcloud 客户运行时。使用自定义运行时,您可以在 dockerfile 中提及 docker 映像,而 gcloud deploy 将负责其余的工作。
    • 是的,如前所述,我也尝试过 docker。但出现以下错误。服务器是否在主机“实例 IP”上运行并接受端口 5432 上的 TCP/IP 连接?
    • @Manasa 你可以试试这个答案stackoverflow.com/a/48431559/3762142
    • 我希望我能帮助您更多地调试此问题,不幸的是您提供的信息非常少,我试图了解这里的上下文。首先忘记了云实例,您可以使用本地 postgresql/mysql 数据库连接进行 docker 迁移吗?如果这行得通。然后我们就可以一一调试了。
    猜你喜欢
    • 2018-08-22
    • 2021-10-05
    • 2011-02-15
    • 1970-01-01
    • 2016-10-07
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多