web-dev-qa-db-ja.com

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アプリをGoogleApp Engineにデプロイします。そこにあり、機能していますが、移行を実行してユーザーを作成する必要があります。それらに対してmanage.pyを実行するにはどうすればよいですか。サーバー?Google Cloud PlatformコンソールからサーバーにSSHで接続する方法を見つけましたが、サーバーに入ると、正しいPython環境をロードする方法や、サーバーを実行する方法が見つかりません。 manage.py

私も読んだ AppEngineフレキシブル環境でDjangoを実行中 これはそれを行う方法を説明しておらず、彼らの構成ファイルはデータベースの資格情報が最終的にアプリケーションのgitrepoは大きなノノですが、私はそれをしていません。つまり、ワークステーションから本番データベースに接続するのは面倒です。

たとえば、これがHerokuの場合、開発ワークステーションでこれを実行します。

heroku run python manage.py migrate

または

heroku run python manage.py createsuperuser

そしてそれはサーバーでそれらのコマンドを実行するでしょう。 Google App Engine Flexible(およびStandard)でも同じことをしようとしています。

1
pupeno

おそらく、これはこれに遭遇した他の誰かにとって有用です。通常の操作には@Georgeの回答を使用することをお勧めしますが、ピンチでシェルを使用してAppEngineからpythonコマンドを実行できます。最近デバッグ目的で使用する必要がありました。SSHを使用しました。アプリでのアクセスエンジン->インスタンス GCPコントロールパネルで。私の場合、VMインスタンス内でdockerを実行するフレックス環境を使用していたので、いくつかあります手順。

  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インスタンスの1つにのみ存在することを意味します。

2
Sarcastron

サーバーに一度デプロイされたのではなく、デプロイメントの観点からファイルを整理するために、開発環境でローカルにmanage.pyを実行することになっています。オンラインの「Running Django in the App EngineFlexibleEnvironment」から詳細を収集できます document

1
George