wal-g

Форк
0
/
wal_fetch.go 
39 строк · 1.3 Кб
1
package pg
2

3
import (
4
	"os"
5

6
	"github.com/spf13/cobra"
7
	"github.com/wal-g/tracelog"
8
	"github.com/wal-g/wal-g/internal"
9
	"github.com/wal-g/wal-g/internal/databases/postgres"
10
	"github.com/wal-g/wal-g/internal/databases/postgres/constants"
11
)
12

13
const WalFetchShortDescription = "Fetches a WAL file from storage"
14

15
// walFetchCmd represents the walFetch command
16
var walFetchCmd = &cobra.Command{
17
	Use:   "wal-fetch wal_name destination_filename",
18
	Short: WalFetchShortDescription, // TODO : improve description
19
	Args:  cobra.ExactArgs(2),
20
	Run: func(cmd *cobra.Command, args []string) {
21
		storage, err := postgres.ConfigureMultiStorage(false)
22
		tracelog.ErrorLogger.FatalfOnError("Failed to configure multi-storage: %v", err)
23

24
		folderReader, err := internal.PrepareMultiStorageFolderReader(storage.RootFolder(), targetStorage)
25
		tracelog.ErrorLogger.FatalOnError(err)
26

27
		err = postgres.HandleWALFetch(folderReader, args[0], args[1], postgres.RegularPrefetcher{})
28
		if _, isArchNonExistErr := err.(internal.ArchiveNonExistenceError); isArchNonExistErr {
29
			tracelog.ErrorLogger.Print(err.Error())
30
			os.Exit(constants.ExIoError)
31
		}
32
		tracelog.ErrorLogger.FatalOnError(err)
33
	},
34
}
35

36
func init() {
37
	Cmd.AddCommand(walFetchCmd)
38
	walFetchCmd.Flags().StringVar(&targetStorage, "target-storage", "", targetStorageDescription)
39
}
40

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

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

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

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