4

ローカルマシン(つまりhttp://localhost:8080/)で、というエンティティのGAEデータストアにデータを入力しましたArticle。コンピューターの電源を切り、翌日再起動した後、データストアが空であることがわかりました。エンティティがありません。将来これを防ぐ方法はありますか?

ローカルデータストアにデータのコピーを作成するにはどうすればよいですか?また、後でローカルホストと本番環境の両方に上記のデータをアップロードできますか?

私のモデルはndbです。

これらが重要な場合は、MaxOSXとPython2.7を使用しています。

4

3 に答える 3

8

私は同じ問題を経験しました。dev_appserver.py の実行時にデータストア パスを宣言すると、修正されるはずです。これらは、dev_appserver を開始するときに使用する引数です。

python dev_appserver.py --high_replication --use_sqlite --datastore_path=myapp.datastore --blobstore_path=myapp_blobs

これは sqlite を使用し、ファイル myapp.datastore にデータを保存します。別のディレクトリに保存する場合は、 --datastore_path=/path/to/myapp/myapp.datastore を使用します

また、 --blobstore_path を使用して、ブロブを特定のディレクトリに保存します。BLOB を保存するディレクトリを宣言する方が信頼性が高いことがわかりました。繰り返しますが、これは --blobstore_path=/path/to/myapp/blobs または任意のものです。

BLOB とデータストアのパスを宣言して以来、ローカルでデータが失われることはありません。詳細については、次の App Engine ドキュメントを参照してください。

https://developers.google.com/appengine/docs/python/tools/devserver#Using_the_Datastore

于 2012-12-08T17:12:43.973 に答える
1

ローカルデータストアのデータは、少なくともPCでは、-cフラグで開始してクリアしない限り、保持されます。したがって、一時ファイルやアクセス許可などで別の問題が発生している可能性があります。

ローカルデータは実際の本番サーバーとは異なる方法で保存されるため、直接バックアップを作成できるかどうかはわかりません。ローカルサーバーとデプロイされたサーバーの両方にデータをアップロードする場合は、アップロードツールスイートを使用できます: データのアップロード

バルクローダーツールは、アプリケーションのデータストアとの間でデータをアップロードおよびダウンロードできます。ほんの少しの設定で、CSVおよびXMLファイルから新しいデータストアエンティティをアップロードし、エンティティデータをCSV、XML、およびテキストファイルにダウンロードできます。ほとんどのスプレッドシートアプリケーションはCSVファイルをエクスポートできるため、開発者以外のアプリケーションや他のアプリケーションが、アプリにインポートできるデータを簡単に作成できます。アップロードとダウンロードのロジックをカスタマイズして、さまざまな種類のファイルを使用したり、他のデータ処理を実行したりできます。

したがって、データをファイルにダウンロードすることで「バックアップ」できます。

データをローカル開発サーバーにロード/プルするには、ローカルURLを指定するだけです。

于 2012-12-08T11:03:56.737 に答える
1

通常、データストアはシャットダウン時にディスクに保存されます。サーバーをシャットダウンせずにコンピューターの電源を切った場合、これが発生することがわかりました。

于 2012-12-08T15:58:05.627 に答える