0
我需要確保應用程序啓動時存在表。Rethinkdb,Go:確保一個ReQL語句中的表和索引
如果表不存在並且需要創建,我還希望在表上創建二級索引。
它很容易在Go中完成,但我想在一個語句中使用ReQL。所以我想出了這個:
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()函數正確排序多個寫入命令?
感謝