Google App Engineの開発環境に登録したはずのデータが、毎回PCを起動するたびに消えていたので、いろいろ調べてみた。
まず、Googleの公式な説明では、基本的に開発環境のデータは消えず、開発サーバ起動コマンドのオプション指定で消える、とのこと。もちろん、そんな操作は行っていないが、自分のPCでは毎回データは消えている。
開発用 Web サーバーは、コンピュータのファイルを使用して App Engine データストアをシミュレートします。このファイルは次回 Web サーバーを呼び出すときまで保持されるので、格納したデータを引き続き使用できます。
アプリケーションのローカル データストアをクリアするには、Web サーバーを開始するときに –clear_datastore オプションを使用します。
Python 開発用サーバー – Google App Engine – Google Code
で、いろいろ調べてみたので、ちゃんとメモしておこう。
①まず、ローカルデータストアのディレクトリパスを確認する。dev_appserver.py実行時のコンソールメッセージで、「datastore_path」が書かれている箇所があるので、そのディレクトリパスをチェック。
②そこにデータストアファイルがあれば、パス自体は正常のはず。自分の場合は、ファイルそのものがなかったので、PCを起動する際に消えてしまっているものと推測。(デフォルトのディレクトリが「-Tmp-」になっていたので、もしかしたらそのせいで消えてしまっていたのかも。本当の原因は不明。)
データストアファイルに使用する場所を変更する方法も用意されているけれど、それを試したらなぜかエラーに。次の手段で回避してみることにした。
③データを登録して、データストアファイルが作成されることを確認した。このデータストアファイルを別ディレクトリにバックアップ。
④PCを起動するとやはりデータストアファイルは消えているので、バックアップからデータストアファイルを戻す。
この状態で動かしてみたら、ちゃんと登録されている状態に戻った。