8

私はweb.pyとGAE(Windows 7、Python27)を使用して基本的なテストコードを実行しています。このフォームでは、データストアにメッセージを投稿することができます。アプリを停止してもう一度実行すると、以前に投稿されたデータはすべて消えてしまいました。 admin(http:// localhost:8080/_ah/admin/datastore)を使用してエンティティを手動で追加することにも同じ問題があります。App Engineのローカルデータストアの内容が維持されない

私は余分なフラグを使用してアプリケーション設定でパスを設定してみました:

--datastore_path=D:/path/to/app/ 

(そこ構文についてはよく分かりませんでした)。それは効果がなかった。 * .datastoreのためにコンピュータを検索したところ、どちらのファイルも見つかりませんでしたが、疑わしいと思われますが、データはアプリの実行中にどこかに格納されています。

from google.appengine.ext import db 
import web 

urls = (
    '/', 'index', 
    '/note', 'note', 
    '/crash', 'crash' 
) 

render = web.template.render('templates/') 

class Note(db.Model): 
    content = db.StringProperty(multiline=True) 
    date = db.DateTimeProperty(auto_now_add=True) 

class index: 
    def GET(self): 
      notes = db.GqlQuery("SELECT * FROM Note ORDER BY date DESC LIMIT 10") 
      return render.index(notes) 

class note: 
    def POST(self): 
      i = web.input('content') 
      note = Note() 
      note.content = i.content 
      note.put() 
      return web.seeother('/') 

class crash: 
    def GET(self): 
      import logging 
      logging.error('test') 
      crash 

app = web.application(urls, globals()) 

def main(): 
    app.cgirun() 

if __name__ == '__main__': 
    main() 

UPDATE:私は、コマンドラインを介して、それを実行すると 、私は次を得る:

WARNING 2012-04-06 19:07:31,266 rdbms_mysqldb.py:74] The rdbms API is not available because the MySQLdb library could not be loaded. 
INFO  2012-04-06 19:07:31,778 appengine_rpc.py:160] Server: appengine.google.com 
WARNING 2012-04-06 19:07:31,783 datastore_file_stub.py:513] Could not read datastore data from c:\users\amy\appdata\local\temp\dev_appserver.datastore 
WARNING 2012-04-06 19:07:31,851 dev_appserver.py:3394] Could not initialize images API; you are likely missing the Python "PIL" module. ImportError: No module named _imaging 
INFO  2012-04-06 19:07:32,052 dev_appserver_multiprocess.py:647] Running application dev~palimpsest01 on port 8080: http://localhost:8080 
INFO  2012-04-06 19:07:32,052 dev_appserver_multiprocess.py:649] Admin console is available at: http://localhost:8080/_ah/admin 

データストアが...正しくインストールされなかったことを示唆していますか?

+0

[アプリケーションの再起動の間にローカルデータストアは保持されません](http://stackoverflow.com/questions/7430888/local-datastore-not-persisted-between-application-restarts) –

+0

@AdamCrossland私は思わないこの質問では、すべてのものは消去されていますが、以前の質問ではデータの一部が消去されています。 –

+0

アプリを昼食するときに(コンソールペインの)ログを見て、警告が表示されますか? –

答えて

7

1.6.4から、書き込みごとにデータストアの保存を停止しました。このメソッドは、高レプリケーションデータストアで検出されたトランザクションモデルをシミュレートするときには機能しませんでした(最後のカップルの書き込みを失うことになります)。それはまたひどく非効率的です。データストアdevスタブがすべての書き込みをフラッシュし、その状態をシャットダウン時に保存するように変更しました。 dev_appserverが正しくシャットダウンしていないようです。あなたは、表示されるはずです。

は、すべての保留中のトランザクションを適用し、サーバーをシャットダウンするとき(source codesource codeを参照してください)ログにデータストア

を保存します。そうでない場合は、dev_appserverがきれいにシャットダウンされていないことを意味します(TERMシグナルまたはKeyInterruptを使用)。

+0

dev_appserverをシャットダウンする正しい方法は? Ubuntuでは、私は割り込みCtrl + Cを使用し、それは動作します。ウィンドウズでは、コマンドプロンプトも同様に機能します。しかし、ウィンドウで、git bashと、それは維持されません。 –

関連する問題