github.com/prysmaticlabs/prysm@v1.4.4/beacon-chain/db/kv/migration.go (about)

     1  package kv
     2  
     3  import (
     4  	"context"
     5  
     6  	bolt "go.etcd.io/bbolt"
     7  )
     8  
     9  var migrationCompleted = []byte("done")
    10  
    11  type migration func(*bolt.Tx) error
    12  
    13  var migrations = []migration{
    14  	migrateArchivedIndex,
    15  	migrateBlockSlotIndex,
    16  }
    17  
    18  // RunMigrations defined in the migrations array.
    19  func (s *Store) RunMigrations(ctx context.Context) error {
    20  	for _, m := range migrations {
    21  		if ctx.Err() != nil {
    22  			return ctx.Err()
    23  		}
    24  
    25  		if err := s.db.Update(m); err != nil {
    26  			return err
    27  		}
    28  	}
    29  	return nil
    30  }