質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2513閲覧

【GAE】データストアに登録したデータが再起動すると消えてしまう。

退会済みユーザー

退会済みユーザー

総合スコア0

Google App Engine

Google App Engineは、Googleの管理するデータセンター上でウェブアプリケーションの開発が可能なクラウドコンピュータ技術です。Java、Python、Go用にSDKが用意されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

4グッド

4クリップ

投稿2015/11/25 13:28

Google App Engineで、Webアプリを作成しています。
用いている言語はPythonです。

現在、ローカル開発環境で作業をしています。Virtual Box上で、Ubuntuを動かしています。
Google App Engineのデータストアにデータを登録していたのですが、
今朝Virtual Boxを一旦シャットダウンして、改めて起動したところ、データストアに登録したデータが全て消えてしまいました。
(データストアは、http://localhost:8000/datastoreに行くと確認できます。)
調べてみると、この現象は他にもあるようでした。

[GAE]ローカル開発サーバで、マシン再起動時にDatastoreが消えるのを防ぐ
などにも、記載があります。
これによると、AppLauncherの設定で、消えることを防ぐことができると書いてあるのですが、
私はAppLauncherは使っていません。

Google App Engineの開発環境のデータが消える現象について
によると、
・ローカルデータストアのディレクトリパスを確認する。dev_appserver.py実行時のコンソールメッセージで、「datastore_path」が書かれている箇所があるので、そのディレクトリパスをチェック。
・データを登録して、データストアファイルが作成されることを確認した。このデータストアファイルを別ディレクトリにバックアップ。
・PCを起動するとやはりデータストアファイルは消えているので、バックアップからデータストアファイルを戻す。
という方法で対応できるようです。
この方法でも良いので、なんとかデータを保存しておきたいのですが、「datastore_path」が書かれている箇所が分かりません。どこにデータストアファイルが作成されるのでしょうか。
念の為、コンソールの表示を貼り付けます。

user@user-VirtualBox:~/google_appengine$ python dev_appserver.py appINFO 2015-11-25 12:47:45,784 sdk_update_checker.py:229] Checking for updates to the SDK. INFO 2015-11-25 12:47:46,777 api_server.py:205] Starting API server at: http://localhost:52152 INFO 2015-11-25 12:47:46,798 dispatcher.py:197] Starting module "default" running at: http://localhost:8080 INFO 2015-11-25 12:47:46,802 admin_server.py:118] Starting admin server at: http://localhost:8000 INFO 2015-11-25 12:48:03,111 module.py:809] default: "GET /setting HTTP/1.1" 200 4598 INFO 2015-11-25 12:48:03,331 module.py:809] default: "GET /stylesheets/main.css HTTP/1.1" 304 - INFO 2015-11-25 12:56:31,271 module.py:809] default: "GET /adminsetting HTTP/1.1" 200 3120 INFO 2015-11-25 12:56:31,527 module.py:809] default: "GET /stylesheets/main.css HTTP/1.1" 304 - INFO 2015-11-25 12:58:51,789 module.py:809] default: "POST /adminsettingspost HTTP/1.1" 302 - INFO 2015-11-25 12:58:52,170 module.py:809] default: "GET / HTTP/1.1" 200 3855 INFO 2015-11-25 12:58:52,299 module.py:809] default: "GET /stylesheets/main.css HTTP/1.1" 304 - INFO 2015-11-25 13:10:35,230 module.py:809] default: "GET /setting HTTP/1.1" 200 4652 INFO 2015-11-25 13:10:35,367 module.py:809] default: "GET /stylesheets/main.css HTTP/1.1" 304 -

ローカル開発環境で、データストアを保存する方法がお分かりの方、ご教示頂ければ幸いです。
よろしくお願いいたします。

yterpu, TmNm_Bigger, av-👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

外していたらごめんなさい。
再起動して消えてしまったのは、ひょっとしてデータストアファイルの出力先が /tmp 配下だからでは?

それと datastore_path はプログラム内や設定ファイル内に記載してあるのではないから見つからないのだと思います。下記によれば、変更したい場合にはサーバー起動コマンドのコマンドラインオプションで指定するようです。
The Python Development Server

To change the location used for the datastore file, use the --datastore_path option:
dev_appserver.py --datastore_path=/tmp/myapp_datastore myapp

→オプション指定で別の場所へ移動してみては?

投稿2015/11/27 11:40

pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2015/11/29 05:45

ありがとうございます。 起動時のdatastore_pathの設定で、データを残すことができました。 $ dev_appserver.py --datastore_path=~/gae_datastore [GAEプロジェクト] http://dackdive.hateblo.jp/entry/2014/09/06/002553
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問