メモ

StringPropertyの最大サイズ - やればできる子の日記
http://d.hatena.ne.jp/matsuza/20080414/1208191134

そういえば気にしたこと無かったなぁと思って、ソース見てみた。

google_appengine/google/appengine/api/datastore_types.py

_MAX_STRING_LENGTH = 500
_MAX_LINK_PROPERTY_LENGTH = 2083

あったあった。勉強になりました。

ちなみにローカルでも簡単にためせます。
dev_appserver.py project で起動して

http://localhost:8080/_ah/admin/interactive

アクセスして

from google.appengine.ext import db

class Spam(db.Model):
  eggs = db.StringProperty()

Spam(eggs=''.join(['' for i in range(100000)])).put()

実行すると

BadValueError: Property eggs is 300000 bytes long; it must be 500 or less. Consider Text instead, which can store strings of any length.

こんなエラーが出てきます。

蛇足

関係ないけど ToPropertyPb は isinstance 使いまくり。

ソースをほとんど見ないで monologista を移植してたけど、
これは読むと面白そう、だれか一緒に読みませんか。