Я последовал этому руководству:
чтобы развернуть приложение Django в Google App Engine. Он есть, он работает, но мне нужно запустить миграции и создать пользователя. Как мне бежать manage.py
на тех серверах? Я нашел, как подключиться к ним по SSH из консоли Google Cloud Platform, но когда я нахожусь на сервере, я не могу найти, как загрузить правильную среду Python и / или запустить manage.py
.
Я также читаю Запуск Django в гибкой среде App Engine который не объясняет, как это сделать, и их файл конфигурации, похоже, предполагает, что учетные данные базы данных попадут в репозиторий git для приложения, что является большим ноно. Я этого не делаю, поэтому подключение к производственной базе данных с моей рабочей станции затруднительно.
Если бы это был Heroku, например, я бы сделал это на своей рабочей станции разработчика:
heroku run python manage.py migrate
или
heroku run python manage.py createsuperuser
и он будет выполнять эти команды на сервере. Я пытаюсь сделать то же самое с Google App Engine Flexible (а также со стандартным).
Возможно, это полезно для кого-то еще, кто сталкивается с этим. Конечно, желательно использовать ответ @ George для нормальной работы, но в крайнем случае вы можете запустить команду python из App Engine. Мне недавно пришлось для отладки. Я использовал SSH-доступ в приложении Двигатель -> Экземпляры в Панели управления GCP. В моем случае я использовал гибкую среду, которая запускает докер внутри экземпляра виртуальной машины, поэтому есть несколько шагов.
docker ps
. В моем случае мое приложение Django работало в контейнере с именем gaeapp
.docker exec -it gaeapp /bin/bash
python manage.py help
НОТА: Эти среды следует считать эфемерными, и вам не следует делать это частью какого-либо последовательного рабочего процесса. Когда экземпляр App Engine переводится из режима отладки обратно в нормальный режим работы, очень вероятно, что он будет уничтожен, и его заменит новый экземпляр. Это означает, что все созданные файлы будут потеряны. Это также означает, что любые сгенерированные файлы будут существовать только на одном из потенциально многих экземпляров виртуальных машин.
Предполагается, что вы должны запускать manage.py локально, в своей среде разработки, чтобы упорядочить файлы с учетом развертывания, а не после их развертывания на серверах. Вы можете получить более подробную информацию из статьи «Запуск Django в гибкой среде App Engine» в Интернете. документ.