Go-PG
前置
初始化
数据库连接选项 pg.Options有如下字段:
Network: 网络类型,例如 "tcp","unix" 或 "udp"。如果为空,将默认使用 "tcp"。Addr: 数据库服务器地址,如 "localhost:5432"。Dialer: 自定义拨号器,如果你想对连接进行更精细的控制,可以使用此选项。OnConnect: 每当创建新的数据库连接时,OnConnect中的函数都会被调用。User: 用于连接到数据库的用户名。Password: 用于连接到数据库的密码。Database: 要连接的数据库的名称。ApplicationName: 应用程序的名称,这个名称将出现在 PostgreSQL 的日志和系统表中。TLSConfig: 用于 TLS 连接的配置。如果为空,则不使用 TLS。DialTimeout: 连接到数据库的超时时间。ReadTimeout: 读操作的超时时间。WriteTimeout: 写操作的超时时间。MaxRetries: 连接失败后的最大重试次数。RetryStatementTimeout: 是否在重试时使用语句超时。MinRetryBackoff: 每次重试之间的最小退避时间。MaxRetryBackoff: 每次重试之间的最大退避时间。PoolSize: 连接池的大小,即同时保持的最大数据库连接数。MinIdleConns: 池中最小的空闲连接数。MaxConnAge: 连接可以保持打开的最长时间。PoolTimeout: 如果所有连接都在使用中,那么获取新的数据库连接的最长等待时间。IdleTimeout: 空闲连接在关闭前可以保持空闲的最长时间。IdleCheckFrequency: 检查空闲连接的频率。
处理大量并发数据库操作,增加 PoolSize。
长时间保持数据库连接,增加 MaxConnAge。
数据库服务器使用 SSL,提供 TLSConfig值
默认只需要四个值:
Addr: "192.168.0.158:5432",
User: "user",
Password: "password",
Database: "dbname",
初始化示例:
package repository
import "github.com/go-pg/pg/v10"
var PG *pg.DB
func InitPostgresDB() {
// 1. 链接
PG = pg.Connect(&pg.Options{
Addr: "192.168.0.158:5432",
User: "root",
Password: "pass",
Database: "db",
})
}
类型
主键
type User struct {
Id int64 `pg:",pk"`
Name string
}