gci is configured with the sections standard, default and localmodule, and goimports with the module path as its local prefix, so both formatters agree.
44 lines
1.3 KiB
Go
44 lines
1.3 KiB
Go
// Package migrate provides the "migrate" command and its subcommands, which
|
|
// apply, roll back and report the store's migrations (goose, embedded in the
|
|
// store package) on the configured SQLite database.
|
|
//
|
|
// goose runs each migration in its own transaction, so a failed migration is
|
|
// rolled back and leaves the database at the previous version.
|
|
package migrate
|
|
|
|
import (
|
|
"log/slog"
|
|
|
|
"github.com/spf13/cobra"
|
|
|
|
"git.avsdev.uk/Go/job-search/internal/cli"
|
|
)
|
|
|
|
// NewCommand returns the "migrate" command, which migrates the database schema (see
|
|
// internal/store).
|
|
func NewCommand(opts *cli.Options) *cobra.Command {
|
|
cmd := &cobra.Command{
|
|
Use: "migrate",
|
|
Short: "Migrate SQLite database to latest version",
|
|
Long: `Migrate the SQLite database to the latest version.
|
|
|
|
Running without a subcommand is the same as running "migrate up": every pending
|
|
migration is applied.`,
|
|
Args: cobra.NoArgs,
|
|
PersistentPreRun: func(cmd *cobra.Command, args []string) {
|
|
slog.Debug("migrate.PersistentPreRun")
|
|
},
|
|
PersistentPostRun: func(cmd *cobra.Command, args []string) {
|
|
slog.Debug("migrate.PersistentPostRun")
|
|
},
|
|
RunE: func(cmd *cobra.Command, args []string) error {
|
|
slog.Debug("migrate.Run")
|
|
return runStepUp(cmd, opts, 0, false)
|
|
},
|
|
}
|
|
cmd.AddCommand(commandUp(opts))
|
|
cmd.AddCommand(commandDown(opts))
|
|
cmd.AddCommand(commandStatus(opts))
|
|
return cmd
|
|
}
|