db-migrator.go

Форк
0
/
history_new.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

9
package action
10

11
import (
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

17
type HistoryNew struct {
18
	service MigrationService
19
}
20

21
func NewHistoryNew(
22
	service MigrationService,
23
) *HistoryNew {
24
	return &HistoryNew{
25
		service: service,
26
	}
27
}
28

29
func (h *HistoryNew) Run(ctx *cli.Context) error {
30
	limit, err := args.ParseStepStringOrDefault(ctx.Args().Get(0), defaultGetHistoryLimit)
31
	if err != nil {
32
		return err
33
	}
34

35
	migrations, err := h.service.NewMigrations(ctx.Context)
36
	if err != nil {
37
		return err
38
	}
39

40
	migrationsCount := migrations.Len()
41
	if migrationsCount == 0 {
42
		console.SuccessLn(noNewMigrationsFound)
43
		return nil
44
	}
45

46
	if limit > 0 && migrationsCount > limit {
47
		migrations = migrations[:limit]
48
		console.Warnf(
49
			"Showing %d out of %d new %s \n",
50
			limit,
51
			migrationsCount,
52
			console.NumberPlural(migrationsCount, "migration", "migrations"),
53
		)
54
	} else {
55
		console.Warnf(
56
			"Found %d new %s \n",
57
			migrationsCount,
58
			console.NumberPlural(migrationsCount, "migration", "migrations"),
59
		)
60
	}
61

62
	printMigrations(migrations, true)
63

64
	return nil
65
}
66

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.