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