package migration_01_to_11 import "github.com/coreos/bbolt" var ( // metaBucket stores all the meta information concerning the state of // the database. metaBucket = []byte("metadata") // dbVersionKey is a boltdb key and it's used for storing/retrieving // current database version. dbVersionKey = []byte("dbp") ) // Meta structure holds the database meta information. type Meta struct { // DbVersionNumber is the current schema version of the database. DbVersionNumber uint32 } // putMeta is an internal helper function used in order to allow callers to // re-use a database transaction. See the publicly exported PutMeta method for // more information. func putMeta(meta *Meta, tx *bbolt.Tx) error { metaBucket, err := tx.CreateBucketIfNotExists(metaBucket) if err != nil { return err } return putDbVersion(metaBucket, meta) } func putDbVersion(metaBucket *bbolt.Bucket, meta *Meta) error { scratch := make([]byte, 4) byteOrder.PutUint32(scratch, meta.DbVersionNumber) return metaBucket.Put(dbVersionKey, scratch) }