db-migrator.go
65 строк · 1.4 Кб
1/**
2* This file is part of the raoptimus/db-migrator.go library
3*
4* @copyright Copyright (c) Evgeniy Urvantsev
5* @license https://github.com/raoptimus/db-migrator.go/blob/master/LICENSE.md
6* @link https://github.com/raoptimus/db-migrator.go
7*/
8
9package action10
11import (12"github.com/raoptimus/db-migrator.go/internal/args"13"github.com/raoptimus/db-migrator.go/internal/console"14"github.com/urfave/cli/v2"15)
16
17type HistoryNew struct {18service MigrationService
19}
20
21func NewHistoryNew(22service MigrationService,23) *HistoryNew {24return &HistoryNew{25service: service,26}27}
28
29func (h *HistoryNew) Run(ctx *cli.Context) error {30limit, err := args.ParseStepStringOrDefault(ctx.Args().Get(0), defaultGetHistoryLimit)31if err != nil {32return err33}34
35migrations, err := h.service.NewMigrations(ctx.Context)36if err != nil {37return err38}39
40migrationsCount := migrations.Len()41if migrationsCount == 0 {42console.SuccessLn(noNewMigrationsFound)43return nil44}45
46if limit > 0 && migrationsCount > limit {47migrations = migrations[:limit]48console.Warnf(49"Showing %d out of %d new %s \n",50limit,51migrationsCount,52console.NumberPlural(migrationsCount, "migration", "migrations"),53)54} else {55console.Warnf(56"Found %d new %s \n",57migrationsCount,58console.NumberPlural(migrationsCount, "migration", "migrations"),59)60}61
62printMigrations(migrations, true)63
64return nil65}
66