Files
prysm/cmd/validator/db/db.go
Bastin e27445bae2 Add cmd/* to gen-logs.sh (#16285)
**What does this PR do? Why is it needed?**
This PR adds the `cmd` directory and all it's subcategories to the
`hack/gen-logs.sh`. meaning that they will now have a `log.go` file and
a `package` field. see the list of added packages below. some of them
had different names, which has been added to the `prefixReplacements`
map.

packages added:
"cmd"
"cmd/validator/web"
"cmd/validator/wallet"
"cmd/validator/slashing-protection"
"cmd/validator/db"
"cmd/validator/accounts"
"cmd/prysmctl"
"cmd/prysmctl/weaksubjectivity"
"cmd/prysmctl/validator"
"cmd/prysmctl/testnet"
"cmd/prysmctl/p2p"
"cmd/prysmctl/db"
"cmd/prysmctl/checkpointsync"
"cmd/client-stats"
"cmd/beacon-chain"
"cmd/beacon-chain/storage"
"cmd/beacon-chain/jwt"
"cmd/beacon-chain/genesis"
"cmd/beacon-chain/flags"
"cmd/beacon-chain/db"
2026-01-26 17:49:52 +00:00

108 lines
3.0 KiB
Go

package db
import (
"github.com/OffchainLabs/prysm/v7/cmd"
"github.com/OffchainLabs/prysm/v7/runtime/tos"
validatordb "github.com/OffchainLabs/prysm/v7/validator/db"
"github.com/urfave/cli/v2"
)
var (
// SourceDataDirFlag defines a path on disk where source Prysm databases are stored. Used for conversion.
SourceDataDirFlag = &cli.StringFlag{
Name: "source-data-dir",
Usage: "Source data directory",
Required: true,
}
// SourceDataDirFlag defines a path on disk where source Prysm databases are stored. Used for conversion.
TargetDataDirFlag = &cli.StringFlag{
Name: "target-data-dir",
Usage: "Target data directory",
Required: true,
}
)
// Commands for interacting with the Prysm validator database.
var Commands = &cli.Command{
Name: "db",
Category: "db",
Usage: "Defines commands for interacting with the Prysm 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 := validatordb.Restore(cliCtx); err != nil {
log.WithError(err).Fatal("Could not restore database")
}
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 := validatordb.MigrateUp(cliCtx); err != nil {
log.WithError(err).Fatal("Could not run database migrations")
}
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 := validatordb.MigrateDown(cliCtx); err != nil {
log.WithError(err).Fatal("Could not run database migrations")
}
return nil
},
},
},
},
{
Name: "convert-complete-to-minimal",
Category: "db",
Usage: "Convert a complete EIP-3076 slashing protection to a minimal one",
Flags: []cli.Flag{
SourceDataDirFlag,
TargetDataDirFlag,
},
Before: func(cliCtx *cli.Context) error {
return cmd.LoadFlagsFromConfig(cliCtx, cliCtx.Command.Flags)
},
Action: func(cliCtx *cli.Context) error {
sourcedDatabasePath := cliCtx.String(SourceDataDirFlag.Name)
targetDatabasePath := cliCtx.String(TargetDataDirFlag.Name)
// Convert the database
err := validatordb.ConvertDatabase(cliCtx.Context, sourcedDatabasePath, targetDatabasePath, false)
if err != nil {
log.WithError(err).Fatal("Could not convert database")
}
return nil
},
},
},
}