prysm-pulse/validator/db/cmd.go
Raul Jordan 4c19e622cd
Implement Migration Up/Down Logic for Validator DB (#8271)
* rollback logic

* implement up down logic

* begin down migration tests

* rollback works

* unset test

* remove iface

* gaz

* add comment

* fix ineff assign

* preston comment

* add progress
2021-01-15 15:35:21 -06:00

67 lines
1.7 KiB
Go

package db
import (
"github.com/prysmaticlabs/prysm/shared/cmd"
"github.com/prysmaticlabs/prysm/shared/tos"
"github.com/urfave/cli/v2"
)
// DatabaseCommands for Prysm validator.
var DatabaseCommands = &cli.Command{
Name: "db",
Category: "db",
Usage: "defines commands for interacting with eth2 validator database",
Subcommands: []*cli.Command{
{
Name: "restore",
Description: `restores a database from a backup file`,
Flags: cmd.WrapFlags([]cli.Flag{
cmd.RestoreSourceFileFlag,
cmd.RestoreTargetDirFlag,
}),
Before: tos.VerifyTosAcceptedOrPrompt,
Action: func(cliCtx *cli.Context) error {
if err := restore(cliCtx); err != nil {
log.Fatalf("Could not restore database: %v", err)
}
return nil
},
},
{
Name: "migrate",
Category: "db",
Usage: "Defines commands for running validator database migrations",
Subcommands: []*cli.Command{
{
Name: "up",
Usage: "Runs up migrations for the validator database",
Flags: cmd.WrapFlags([]cli.Flag{
cmd.DataDirFlag,
}),
Before: tos.VerifyTosAcceptedOrPrompt,
Action: func(cliCtx *cli.Context) error {
if err := migrateUp(cliCtx); err != nil {
log.Fatalf("Could not run database migrations: %v", err)
}
return nil
},
},
{
Name: "down",
Usage: "Runs down migrations for the validator database",
Flags: cmd.WrapFlags([]cli.Flag{
cmd.DataDirFlag,
}),
Before: tos.VerifyTosAcceptedOrPrompt,
Action: func(cliCtx *cli.Context) error {
if err := migrateDown(cliCtx); err != nil {
log.Fatalf("Could not run database migrations: %v", err)
}
return nil
},
},
},
},
},
}