Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConnectOptions ¶
type ConnectOptions struct { DSN string DriverName string Retries int RetryDelay time.Duration ConnectTimeout time.Duration ConnMaxLifetime time.Duration MaxIdleConnections int MaxOpenConnections int }
ConnectOptions config options for database
type ReaderWriter ¶
ReaderWriter wraps db reader and writer
func NewDbConnection ¶
func NewDbConnection(ctx context.Context, ready *bool, ro ConnectOptions, wo ConnectOptions) *ReaderWriter
NewDbConnection connects to the reader and writer per passed in options, with retries, returning a DBReaderWriter object that contains sql.DB connection
func (*ReaderWriter) GetReaderConn ¶
func (dbs *ReaderWriter) GetReaderConn() *sql.DB
GetReaderConn returns connection to reader
func (*ReaderWriter) GetWriterConn ¶
func (dbs *ReaderWriter) GetWriterConn() *sql.DB
GetWriterConn returns connection to writer
type Settings ¶
type Settings struct { User string `yaml:"USER"` Password string `yaml:"PASSWORD"` Port string `yaml:"PORT"` Host string `yaml:"HOST"` Name string `yaml:"NAME"` MaxOpenConnections int `yaml:"MAX_OPEN_CONNECTIONS"` MaxIdleConnections int `yaml:"MAX_IDLE_CONNECTIONS"` }
Settings connection settings to postgres db
func (*Settings) BuildConnectionString ¶
BuildConnectionString builds the connection string to the database - for now same as reader
type Store ¶
type Store struct {
// contains filtered or unexported fields
}
Store holds the database connection and other stuff.
func NewDbConnectionForTest ¶
NewDbConnectionForTest use this for tests as we have multiple sessions in parallel and don't want the synced one
func NewDbConnectionFromSettings ¶
func NewDbConnectionFromSettings(ctx context.Context, settings *Settings, withSearchPath bool) Store
NewDbConnectionFromSettings sets up a db connection from the settings, only once
func (*Store) DBS ¶
func (store *Store) DBS() *ReaderWriter
DBS returns the reader and writer databases to connect to