私は定期的に自分のGoogle App Engineプロダクションデータをローカルに(appcfg.py download_data
というカスタムスクリプトを使用して)ダウンロードし、開発サーバにアップロードして、開発中のデータ環境と生産が一致します。あなたは、ランチパッド上でスクリプトを見つけることができます。コマンドラインからGoogle App Engineのdevサーバデータにアクセスする方法
- (
./extra/manipular-datos.py --download
と呼ばれる)Download script(./extra/launcher.py
と呼ばれる) - Launcher script
これは、ランチャースクリプトが何をするかです:
- スタートdevサーバー(データベースのフラッシュ)
- モデルをローカルデータベースにダウンロードしてください
- 開発環境のどのユーザーでもパスワード「toto」でログインできるように、すべての通常ユーザーと管理ユーザーのパスワードを変更してください。これは直接script that accesses the freshly-loaded datastore dataで行われます。
GAE 1.5.2まではすべて正常に機能していました。その時点で、開発サーバーは接頭辞dev~
に変更されたので、私は--default_partition=''
を追加してdevサーバーを起動しました。ただし、パスワードを変更するスクリプトはロードされたデータにアクセスしないように見えるため、通常のユーザーまたは管理者のユーザーは常に0のエンティティを返します。私はコマンドラインからデータにアクセスする方法を疑問に思っています。これは、プロダクションサーバーでこれが起きるのを防ぐためのURLではないためです。 ./extra
のスクリプトはGAEにアップロードされないため、そこから実行することはできません。
はあなたのアイデアを与える(しかし、より多くのコンテキストのスクリプトを見て)、このスクリプトを実行するために使用されるものです(と= 1.5.1 GAE <まで働いていた)には:
args, option_dict = ParseArguments(['', colCasaBasePath])
config, matcher = LoadAppConfig(colCasaBasePath, {})
SetupStubs(config.application, **option_dict)
from src.models import WebUser, ScyllaUser
for tipo in (WebUser, ScyllaUser):
usuarios = tipo.all()
# Now len(usuarios) == 0
GAEデータアクセススクリプトが破損した(GAE 1.5.1以降)変更された点は何ですか?このようなワークフローはどのように実行しますか?
SetupStubsに渡すときに 'config ~application'の前に' dev〜 'を付けてみましたか? –
ニック、それはうまくいきませんでした。実際、私は--default_partition = ''でdevサーバを起動して以来、dev〜を追加すると逆の効果がありました。 – Emilien