Example #1
0
// Open open or create database from given desc.
func Open(d desc.Desc, o *opt.Options) (db *DB, err error) {
	s := newSession(d, o)

	err = s.recover()
	if os.IsNotExist(err) && o.HasFlag(opt.OFCreateIfMissing) {
		err = s.create()
	} else if err == nil && o.HasFlag(opt.OFErrorIfExist) {
		err = os.ErrExist
	}
	if err != nil {
		return
	}

	return open(s)
}