0
アプリケーションの起動時にテーブルが存在することを確認する必要があります。Rethinkdb、Go:1つのReQL文でテーブルとインデックスを確実に
テーブルが存在しないため、テーブルを作成する必要がある場合は、テーブルにセカンダリインデックスを作成することもできます。
Goで簡単に実行できますが、ReQLで1つのステートメントで実行したいと思います。だから私はこの思い付いた:
func ensureTableIndex(ses *r.Session, name string, index string) (err error) {
err = r.TableList().Contains(name).Do(r.Branch(r.Row, r.Expr(nil), r.Do(func() r.Term {
return r.TableCreate(name).Do(func() r.Term {
return r.Table(name).IndexCreate(index)
})
}))).Exec(ses)
return
}
がテストに合格しているようです。
私の質問は、これが正しいか効率的な方法であるかどうかです。 ReQL Do()を使用して、複数の書き込みコマンドを順序付ける正しい方法を使用していますか?
おかげ