使用 Cobra 连接 Golang 到 PostgreSQL 15

本指南将展示如何使用 Golang 连接到 PostgreSQL 数据库,并使用 Cobra 包解析命令行参数。

代码示例

以下是使用 Cobra 包解析参数的 Golang 代码:

package main

import (
    "database/sql"
    "fmt"
    "os"

    _ "github.com/lib/pq"
    "github.com/spf13/cobra"
)

var rootCmd = &cobra.Command{
    Use:   "myapp",
    Short: "Connect to PostgreSQL",
    Run:   connectToPostgres,
}

var username, password, address string

func init() {
    rootCmd.PersistentFlags().StringVarP(&username, "username", "u", "", "PostgreSQL username")
    rootCmd.PersistentFlags().StringVarP(&password, "password", "p", "", "PostgreSQL password")
    rootCmd.PersistentFlags().StringVarP(&address, "address", "a", "", "PostgreSQL database address")
    rootCmd.MarkPersistentFlagRequired("username")
    rootCmd.MarkPersistentFlagRequired("password")
    rootCmd.MarkPersistentFlagRequired("address")
}

func main() {
    if err := rootCmd.Execute(); err != nil {
        fmt.Println(err)
        os.Exit(1)
    }
}

func connectToPostgres(cmd *cobra.Command, args []string) {
    connStr := fmt.Sprintf("postgres://%s:%s@%s/postgres?sslmode=disable", username, password, address)
    db, err := sql.Open("postgres", connStr)
    if err != nil {
        fmt.Println(err)
        return
    }
    defer db.Close()

    err = db.Ping()
    if err != nil {
        fmt.Println(err)
        return
    }

    fmt.Println("Successfully connected to PostgreSQL!")
}

运行程序

使用命令行运行程序:

$ myapp --username=root --password=KXGNEYpkyxuXXfRB --address=192.168.1.100:5432

注意

请确保已经安装了 github.com/spf13/cobragithub.com/lib/pq 包。

Golang 连接 PostgreSQL 15 - 使用 Cobra 解析参数

原文地址: https://www.cveoy.top/t/topic/nheB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录