github.com/prysmaticlabs/prysm@v1.4.4/validator/db/migrate.go (about)

     1  package db
     2  
     3  import (
     4  	"context"
     5  	"path"
     6  
     7  	"github.com/pkg/errors"
     8  	"github.com/prysmaticlabs/prysm/shared/cmd"
     9  	"github.com/prysmaticlabs/prysm/shared/fileutil"
    10  	"github.com/prysmaticlabs/prysm/validator/db/kv"
    11  	"github.com/urfave/cli/v2"
    12  )
    13  
    14  // MigrateUp for a validator database.
    15  func MigrateUp(cliCtx *cli.Context) error {
    16  	dataDir := cliCtx.String(cmd.DataDirFlag.Name)
    17  
    18  	if !fileutil.FileExists(path.Join(dataDir, kv.ProtectionDbFileName)) {
    19  		return errors.New("No validator db found at path, nothing to migrate")
    20  	}
    21  
    22  	ctx := context.Background()
    23  	log.Info("Opening DB")
    24  	validatorDB, err := kv.NewKVStore(ctx, dataDir, &kv.Config{})
    25  	if err != nil {
    26  		return err
    27  	}
    28  	log.Info("Running migrations")
    29  	return validatorDB.RunUpMigrations(ctx)
    30  }
    31  
    32  // MigrateDown for a validator database.
    33  func MigrateDown(cliCtx *cli.Context) error {
    34  	dataDir := cliCtx.String(cmd.DataDirFlag.Name)
    35  
    36  	if !fileutil.FileExists(path.Join(dataDir, kv.ProtectionDbFileName)) {
    37  		return errors.New("No validator db found at path, nothing to rollback")
    38  	}
    39  
    40  	ctx := context.Background()
    41  	log.Info("Opening DB")
    42  	validatorDB, err := kv.NewKVStore(ctx, dataDir, &kv.Config{})
    43  	if err != nil {
    44  		return err
    45  	}
    46  	log.Info("Running migrations")
    47  	return validatorDB.RunDownMigrations(ctx)
    48  }