db-migrator.go

Форк
0
64 строки · 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
const defaultGetHistoryLimit = 10
18

19
type History struct {
20
	service MigrationService
21
}
22

23
func NewHistory(
24
	service MigrationService,
25
) *History {
26
	return &History{
27
		service: service,
28
	}
29
}
30

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

37
	migrations, err := h.service.Migrations(ctx.Context, limit)
38
	if err != nil {
39
		return err
40
	}
41

42
	migrationsCount := migrations.Len()
43
	if migrationsCount == 0 {
44
		console.SuccessLn("No migration has been done before.")
45
		return nil
46
	}
47

48
	if limit > 0 {
49
		console.Warnf(
50
			"Showing the last %d %s: \n",
51
			migrationsCount,
52
			console.NumberPlural(migrationsCount, "migration", "migrations"),
53
		)
54
	} else {
55
		console.Warnf(
56
			"Total %d %s been applied before: \n",
57
			migrationsCount,
58
			console.NumberPlural(migrationsCount, "migration has", "migrations have"),
59
		)
60
	}
61

62
	printMigrations(migrations, true)
63
	return nil
64
}
65

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

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

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

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