forked from ebhomengo/niki
54 lines
1.2 KiB
Go
54 lines
1.2 KiB
Go
package command
|
|
|
|
import (
|
|
migrator "git.gocasts.ir/ebhomengo/niki/pkg/database/migrator"
|
|
"git.gocasts.ir/ebhomengo/niki/pkg/logger"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
var up bool
|
|
var down bool
|
|
|
|
var migrateCmd = &cobra.Command{
|
|
Use: "migrate",
|
|
Short: "Run database migrations",
|
|
Long: `This command runs the database migrations for the benefactor service.`,
|
|
Run: func(cmd *cobra.Command, args []string) {
|
|
migrate()
|
|
},
|
|
}
|
|
|
|
func migrate() {
|
|
var cfg = loadAppConfig()
|
|
mysqlConfig := getMysqlConfig()
|
|
|
|
logger.Init(cfg.Logger)
|
|
log := logger.L()
|
|
|
|
migratorCfg := migrator.Config{
|
|
MysqlConfig: mysqlConfig,
|
|
MigrationPath: cfg.PathOfMigration,
|
|
MigrationDBName: "gorp_migrations",
|
|
}
|
|
// Run migrations if flags are set
|
|
if migrateUp || migrateDown {
|
|
mgr := migrator.New(migratorCfg)
|
|
if migrateUp {
|
|
log.Info("Running migrations up...")
|
|
mgr.Up()
|
|
log.Info("Migrations up completed.")
|
|
}
|
|
if migrateDown {
|
|
log.Info("Running migrations down...")
|
|
mgr.Down()
|
|
log.Info("Migrations down completed.")
|
|
}
|
|
}
|
|
}
|
|
|
|
func init() {
|
|
migrateCmd.Flags().BoolVar(&up, "up", false, "Run migrations up")
|
|
migrateCmd.Flags().BoolVar(&down, "down", false, "Run migrations down")
|
|
RootCmd.AddCommand(migrateCmd)
|
|
}
|