wal-g
1package pg
2
3import (
4"github.com/spf13/cobra"
5"github.com/wal-g/tracelog"
6"github.com/wal-g/wal-g/internal"
7"github.com/wal-g/wal-g/internal/asm"
8"github.com/wal-g/wal-g/internal/databases/postgres"
9)
10
11const walReceiveShortDescription = "Receive WAL stream with postgres Streaming Replication Protocol and push to storage"
12
13// walReceiveCmd represents the walReceive command
14var walReceiveCmd = &cobra.Command{
15Use: "wal-receive",
16Short: walReceiveShortDescription,
17Args: cobra.ExactArgs(0),
18Run: func(cmd *cobra.Command, args []string) {
19baseUploader, err := internal.ConfigureUploader()
20tracelog.ErrorLogger.FatalOnError(err)
21
22uploader, err := postgres.ConfigureWalUploader(baseUploader)
23tracelog.ErrorLogger.FatalOnError(err)
24
25archiveStatusManager, err := internal.ConfigureArchiveStatusManager()
26if err == nil {
27uploader.ArchiveStatusManager = asm.NewDataFolderASM(archiveStatusManager)
28} else {
29tracelog.ErrorLogger.PrintError(err)
30uploader.ArchiveStatusManager = asm.NewNopASM()
31}
32postgres.HandleWALReceive(cmd.Context(), uploader)
33},
34}
35
36func init() {
37Cmd.AddCommand(walReceiveCmd)
38}
39