postgres

package
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Nov 6, 2026 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

Package postgres 提供 PostgreSQL 配置、连接和独占行仓储。

Index

Constants

This section is empty.

Variables

View Source
var ErrRowLockLost = errors.New("PostgreSQL 行仓储独占权已丢失")

ErrRowLockLost 表示当前行仓储失去数据库独占权。

Functions

func EnsureSchema

func EnsureSchema(ctx context.Context, db *sql.DB, initialize bool) error

EnsureSchema 校验已有 Schema(引擎表与 workflow 表分别判断),或在显式允许时初始化缺失部分。 @param ctx 操作上下文 @param db 数据库连接池 @param initialize 是否允许初始化 @return 初始化或校验错误

func LoadDSN

func LoadDSN(path string) (string, error)

LoadDSN 读取 PostgreSQL URI 或开发配置,进程变量优先且不修改进程环境。 @param path 环境文件路径,不存在时只使用进程环境 @return 已验证且正确转义的连接 URI,包含凭据,禁止记录 @return 不含凭据的中文错误

func Open

func Open(ctx context.Context, dsn string) (*sql.DB, error)

Open 创建并验证 PostgreSQL 连接池,失败时关闭且不暴露连接凭据。 @param ctx 初始化上下文 @param dsn 连接 URI @return 已连接的数据库池 @return 配置或连接错误

Types

type LockedRows

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

LockedRows 将读写及事务绑定到持锁的同一物理连接;断线后禁止透明重连写入。

func NewLockedRows

func NewLockedRows(ctx context.Context, db *sql.DB) (*LockedRows, error)

NewLockedRows 获取数据库会话独占锁,其他服务正在运行时立即失败。 @param ctx 初始化上下文 @param db 数据库连接池 @return 独占行数据库 @return 获取错误

func (*LockedRows) BeginTx

func (l *LockedRows) BeginTx(ctx context.Context) (flowable.Transaction, error)

BeginTx 在持锁物理连接开始事务。 @param ctx 上下文 @return 事务 @return 开始错误

func (*LockedRows) CheckOwner

func (l *LockedRows) CheckOwner(ctx context.Context) error

CheckOwner 校验当前连接的独占锁归属。 @param ctx 上下文 @return 连接或归属错误

func (*LockedRows) ExecContext

func (l *LockedRows) ExecContext(ctx context.Context, query string, args ...any) (flowable.Result, error)

ExecContext 在持锁连接执行写入。 @param ctx 上下文 @param query SQL @param args 参数 @return 执行结果 @return 执行错误

func (*LockedRows) QueryContext

func (l *LockedRows) QueryContext(ctx context.Context, query string, args ...any) (flowable.Rows, error)

QueryContext 在持锁连接执行查询。 @param ctx 上下文 @param query SQL @param args 参数 @return 行结果 @return 查询错误

func (*LockedRows) Release

func (l *LockedRows) Release() error

Release 释放锁后销毁专用物理连接,避免未释放锁或异常会话回池。 @return 首次释放错误

Jump to

Keyboard shortcuts

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