如何在 Google App Engine 中执行 manage.py?

如何在 Google App Engine 中执行 manage.py?

我遵循了本教程:

https://codeburst.io/beginners-guide-to-deploying-a-django-postgresql-project-on-google-cloud-s-flexible-app-engine-e3357b601b91

将 Django 应用部署到 Google App Engine。它就在那里,可以正常工作,但我需要运行迁移并创建用户。我应该如何manage.py在这些服务器上运行?我找到了如何从 Google Cloud Platform 控制台通过 SSH 连接到它们,但一旦我进入服务器,我就找不到如何加载正确的 Python 环境和/或运行manage.py

我也读过在 App Engine 柔性环境中运行 Django它没有解释如何做到这一点,而且他们的配置文件似乎假设数据库凭据最终会出现在应用程序的 git repo 中,这是大忌。我没有这样做,这意味着从我的工作站连接到生产数据库很麻烦。

例如,如果这是 Heroku,我会在我的开发工作站上执行以下操作:

heroku run python manage.py migrate

或者

heroku run python manage.py createsuperuser

它会在服务器中执行这些命令。我正尝试对 Google App Engine Flexible(以及 Standard)执行相同的操作。

答案1

也许这对遇到这种情况的其他人有用。当然建议使用@George 的答案进行正常操作,但在紧急情况下,您可以从 App Engine 运行 python 命令。我最近不得不出于调试目的这样做。我使用了 App 中的 SSH 访问引擎 -> 实例在 GCP 控制面板中。就我而言,我使用的是在 VM 实例内运行 docker 的 flex 环境,因此有几个步骤。

  1. 转到 GCP -> 引擎 -> 实例并通过 SSH 进入实例。
  2. 一旦 SSH 会话开始运行,请确保您的容器正在运行:docker ps。就我而言,我的 Django 应用程序在名为的容器中运行gaeapp
  3. Docker exec 进入容器:docker exec -it gaeapp /bin/bash
  4. 如果该命令有效,那么您现在就处于应用程序的运行容器中。运行您的命令。例如:python manage.py help

笔记:这些环境应被视为短暂的,您不应将其作为任何一致工作流程的一部分。当 App Engine 实例从调试模式更改回正常运行时,它很可能会被销毁,并由新实例替换它。这意味着生成的任何文件都将丢失。这也意味着生成的任何文件将仅存在于可能的许多 VM 实例中的一个上。

答案2

您应该在开发环境中本地运行 manage.py,以便根据部署来组织文件,而不是在服务器上部署后再组织。您可以从在线“在 App Engine 灵活环境中运行 Django”中获取更多详细信息文档

相关内容