sqlite_datastore_stub は、現在のファイルベースのスタブを置き換えることを目的とするPython SDKのためのローカルの データストアの実装です。
データはSQLite データベースによってディスク上に格納されます、したがってメモリ消費の問題はありません、そしてサーバのスタート時間も同様に、ローカルの データストアのサイズに応じた影響を受けることがなくなるでしょう。新しいデータストアスタブで期待できるものは以下です
- ローカルデータストアに多くのデータがある場合、スタート時間が改善されます
- ローカルデータストアに多くのデータがある場合、パフォーマンスが改善されます
- メモリ消費を抑えます
とはいえ、同様に重要なのは、予期 すべきではないことがあります
- 少量のデータに対処するときのパフォーマンス改良。すべてのクエリのスキャンは効率が悪く聞こえますが、速度のためにメモリ内のすべてのデータを保つのが難しいのです--したがって、比較的小さいデータがあるのなら、多くか少しの改良もみることができないでしょう。
- リレーショナルスキーマdev_appserverによって作成されたSQLiteデータベースを開けるなら、それが1つのkindあたり1個のテーブル、およびプロパティのためのカラムで構成されていると期待しないでください。あなたを関心があるなら、datastoreがどう構造化されるかに関するその他の詳細をここに提供します。
これがプレリリースコードであることを忘れないでください。それはあなたのすべてのデータを破壊するかもしれません。それはあなたの猫を飲み込むブラックホールの偶然発生を引き起こすかもしれません。それは、期待したように動きさえするかもしれません!ほぼ、何が起ってもおかしくはありません。
ダウンロード
There are two options for downloading the new stub. If you're unsure which to choose, read the Installation section for details.
インストール
There are two ways to install the sqlite_datastore_stub - you can either download a new copy of the SDK, or patch your existing copy.
Downloading a new SDK
Simply download the SDK zip from the 'download' section, unpack it, and use it as you would normally (see the 'usage' section).
Patching your existing SDK
In order to patch your existing SDK, you will need to have the unix utility 'patch'. Linux and OSX systems will already have this; on Windows you should download a new SDK, or install
mingw.
- Download the sqlite_datastore_stub.diff file from the download section.
- Open a terminal window, and change to the directory containing your SDK.
- Enter the command "patch -p1 < /path/to/datastore_sqlite_stub.diff"
If the patch applied successfully, you should see output like the following:
google_appengine nickjohnson$ patch -p1 < /home/nickjohnson/datastore_sqlite_stub.diff
patching file google/appengine/datastore/datastore_sqlite_stub.py
patching file google/appengine/datastore/sortable_pb_encoder.py
patching file google/appengine/tools/dev_appserver.py
Hunk #2 succeeded at 3485 (offset -6 lines).
Hunk #3 succeeded at 3504 (offset -6 lines).
Hunk #4 succeeded at 3528 (offset -6 lines).
patching file google/appengine/tools/dev_appserver_main.py
使用法(Usage):
変更されたSDKはまだ通常のdatastoreスタッブを使用するのをデフォルトとしています。SQLiteスタッブを可能にするために、dev_appserverに--use_sqlite フラグを使用してください。たとえば、
$ dev_appserver.py --use_sqlite path/to/your/app
データストアファイルの互換性
既存ファイルスタッブと新しいSQLiteスタブによって使用される形式は異なっていて、どちらももう片方によって作り出されたデータを読むことができません。もし以前に使用したものと異なったデータストアスタブを使用して dev_appserver を起動すると(もしくは --use_sqlite フラグを省略している場合も含む)エラーが出るでしょう。
未使用なデータストアを使用するのを保証するために、自身でデータストアのパスの指定して保存するか
$ dev_appsever.py --use_sqlite --datastore_path=/tmp/datastore.sqlite path/to/your/app
または、--clear_datastoreを使用して、起動前にデータストアの以前のコピーを消してください
$ dev_appserver.py --use_sqlite --clear_datastore path/to/your/app
Providing feedback