postgres

package module
v0.0.0-...-e2cb540 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 14, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func New

func New(conf Config) gorm.Dialector

New 根据提供的配置创建一个新的 Gorm 数据库连接。 它支持通过 SSH 隧道进行连接,如果配置中提供了 SSH 信息。

参数:

  • conf: 数据库和 SSH 配置。

返回值:

  • gorm.Dialector: 用于 Gorm 以建立数据库连接的接口。

Types

type Config

type Config struct {
	// DriverName 是用于连接 PostgreSQL 数据库的驱动程序的名称。
	// 例如 "postgres"。
	DriverName string

	// DSN 是用于连接 PostgreSQL 数据库的数据源名称。
	// 它包含了连接数据库所需的信息,如数据库地址、用户名和密码等。
	DSN string

	// WithoutQuotingCheck 表示是否禁用字段名称的引号检查。
	// 如果设置为 true,则不会对字段名称进行引号检查,否则会对字段名称进行引号检查。
	WithoutQuotingCheck bool

	// PreferSimpleProtocol 表示是否偏好使用简单协议。
	// 如果设置为 true,则偏好使用简单协议来连接 PostgreSQL 数据库,否则偏好使用复杂协议。
	PreferSimpleProtocol bool

	// WithoutReturning 表示是否禁用 RETURNING 子句。
	// 如果设置为 true,则不会在 SQL 语句中使用 RETURNING 子句,否则会使用 RETURNING 子句。
	WithoutReturning bool

	// Conn 是已经存在的数据库连接池。
	// 如果设置了该值,则会使用该连接池建立数据库连接。
	Conn gorm.ConnPool

	// SSH 是用于通过 SSH 连接 PostgreSQL 数据库的 SSH 配置。
	// 如果设置了该值,则会通过 SSH 隧道建立数据库连接。
	SSH *ssh.Config
}

Config 结构体用于配置 PostgreSQL 数据库的连接选项。

type Dialector

type Dialector struct {
	// contains filtered or unexported fields
}

Dialector 结构体定义了一个 SSH 客户端连接。 它用于后续的数据库操作,通过 SSH 隧道进行。

func NewDialector

func NewDialector(conn *ssh.Client) *Dialector

NewDialector 创建一个新的 Dialector 实例。

参数:

  • conn: 已建立的 SSH 连接客户端。

返回值:

  • *Dialector 类型的指针,用于后续的 SSH 操作。

func (*Dialector) Dial

func (d *Dialector) Dial(network, address string) (net.Conn, error)

Dial 建立到指定网络地址的连接。 该方法利用 d.conn 的 Client 方法获取的客户端进行连接操作。

参数:

  • network: 网络类型,例如 "tcp"、"udp" 等。
  • address: 要连接的网络地址。

返回值:

  • net.Conn: 建立的网络连接。
  • error: 如果连接失败,则返回错误信息。

func (*Dialector) DialTimeout

func (d *Dialector) DialTimeout(network, address string, _ time.Duration) (net.Conn, error)

DialTimeout 在指定超时时间内,通过特定的网络和地址进行连接。 该方法实际上是调用内部连接的 Client 方法进行连接操作。 注意:尽管有超时参数,但实际连接操作并未使用此超时参数。

参数:

  • network: 网络类型,例如 "tcp"。
  • address: 要连接的地址,例如 "localhost:8080"。
  • timeout: 连接超时时间。

返回值:

  • net.Conn: 建立的连接对象。
  • error: 如果连接失败,会返回一个错误。

func (*Dialector) Open

func (d *Dialector) Open(dsn string) (_ driver.Conn, err error)

Open 打开一个数据库连接。 它是数据库方言的一部分,用于特定于方言的数据库连接。 该方法使用 pq 包的 DialOpen 函数来实现实际的连接操作。

参数:

  • dsn: 数据库连接字符串,包含连接数据库所需的信息。

返回值:

  • driver.Conn: 建立的数据库连接对象,实现了 driver.Conn 接口。
  • error: 如果连接过程中出现错误,则返回该错误。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL