タグ

ブックマーク / qiita.com/vvakame (2)

  • DatastoreからGetした時に余計なPropertyがある場合エラーになるが無視してもいい - Qiita

    タイトルのまんまです。 話の前提として、以下のパッケージを使っているものとします。 google.golang.org/appengine/datastore SDK組み込みの appengine/datastore や Cloud Datastore用の cloud.google.com/go/datastore については言及しませんが、多分似たような設計になってると思うので流用可能なテクではないでしょうか。 モチベーション GAE/J+Slim3とかだとKindのSchemaの変更は大変気軽にできました。 新規追加のプロパティはデフォルト値になりますし、削除したプロパティはインスタンスに変換される時に無視されるからです。 一方、Goは違います。 Entityに存在するプロパティに対応するフィールドがstructにないと、エラーになります。 このため、GAE/Goでは不要になったプロパ

    DatastoreからGetした時に余計なPropertyがある場合エラーになるが無視してもいい - Qiita
  • GAE/Goのdatastoreの挙動について - Qiita

    GAE/J+Slim3の語彙・知識を元にここに解説を書く。 GAE/Goの知識とGo言語の知識が混ぜこぜで書かれているかあまり気にしてはいけない。 以下の調査結果を得るためのテストコードはここに置いた。 EntityにKeyは付属してこない structを定義する時に、そのstructに自分自身のKeyを持たせる方法はない。 EntityにIdまたはNameを自分で定義して、Putする時、Getした後にそこに忘れずにId, Nameを取り出したり移し替えたりして頑張る。 これを自動でやってくれるライブラリがgoonである。 IncompleteKeyはPutした後でも値は変わらない key := datastore.NewIncompleteKey(c, "Test", nil) newKey, err := datastore.Put(c, key, foo) // keyはIncomp

    GAE/Goのdatastoreの挙動について - Qiita
  • 1