Modelのプロパティのデータ型が違うと、こうなる

先日、こんなトラブルがあった。

  1. bulkloaderにて、とあるデータを取り込む。
  2. 開発コンソールの Datastore Viewer で中身を確認。ちゃんと入ってる。
  3. 自分のプログラムから、そのデータをクエリで取得すると、特定のプロパティだけ、どのレコードも常に値が None となってしまう。
  4. ndbを使っているので、キャッシュされている値が、何かの拍子にNoneになってしまっているのか?と思ってキャッシュをクリアしたが、状況変わらず。
原因

bulkloader.yamlにおいて、問題のプロパティを string として取り込む設定になっていたにも関わらず、自分のプログラムのModelの定義では、IntegerProperty にしていたのが原因。
データの実際の型と、それを格納するModelクラスのプロパティの型が一致しないため、格納できなかった模様。

型が違ってたらエラーになるとか、勝手にキャストされるとかではなく、スルっとNoneになってしまうのであった。