db

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Aug 21, 2025 License: GPL-3.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ErrInvalidSequenceNumber

func ErrInvalidSequenceNumber(seq int32) error

func RunMigrations

func RunMigrations(ctx context.Context, connParams ConfigProvider, fs embed.FS, stopAfter int32, printSummary bool) (fault error)

Types

type AddFlagParams

type AddFlagParams struct {
	Name         string
	DefaultValue string
	ValueType    FlagType
}

type Client

type Client struct {
	Queries *Queries
	Pool    *pgxpool.Pool
	// contains filtered or unexported fields
}

func Connect

func Connect(ctx context.Context, cfg Config) (dbClient *Client, fault error)

func (*Client) Close

func (c *Client) Close()

func (*Client) GetPool

func (c *Client) GetPool() *pgxpool.Pool

func (*Client) GetQueries

func (c *Client) GetQueries() *Queries

type Config

type Config struct {
	Host     string `env:"POSTGRES_HOST" envDefault:"localhost"`
	Port     string `env:"POSTGRES_PORT" envDefault:"5433"`
	Database string `env:"POSTGRES_DATABASE" envDefault:"vexil"` // Database name
	Username string `env:"POSTGRES_USER" envDefault:"vexil"`     // Username
	Password Secret `env:"POSTGRES_PASSWORD" envDefault:"vexil"` // Password
}

func LoadConfig

func LoadConfig() (cfg Config, fault error)

func (Config) GetDatabase

func (c Config) GetDatabase() string

func (Config) GetHost

func (c Config) GetHost() string

func (Config) GetPort

func (c Config) GetPort() string

func (Config) GetRedactedURI

func (c Config) GetRedactedURI() string

func (Config) GetURI

func (c Config) GetURI() string

type ConfigProvider

type ConfigProvider interface {
	GetURI() string
	GetRedactedURI() string
	GetHost() string
	GetPort() string
	GetDatabase() string
}

type DBMigrator

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

func NewMigrator

func NewMigrator(ctx context.Context, connParams ConfigProvider, fs embed.FS) (migrator DBMigrator, fault error)

func (DBMigrator) Info

func (m DBMigrator) Info(stopAfter int32) (information Info, fault error)

func (*DBMigrator) Migrate

func (m *DBMigrator) Migrate() (fault error)

func (*DBMigrator) MigrateTo

func (m *DBMigrator) MigrateTo(sequence int32) (fault error)

type DBTX

type DBTX interface {
	Exec(context.Context, string, ...interface{}) (pgconn.CommandTag, error)
	Query(context.Context, string, ...interface{}) (pgx.Rows, error)
	QueryRow(context.Context, string, ...interface{}) pgx.Row
}

type Environment

type Environment struct {
	ID        int64
	Name      string
	CreatedAt pgtype.Timestamptz
	UpdatedAt pgtype.Timestamptz
	DeletedAt pgtype.Timestamptz
}

type FeatureFlag

type FeatureFlag struct {
	ID           int64
	Name         string
	DefaultValue string
	ValueType    FlagType
	CreatedAt    pgtype.Timestamptz
	UpdatedAt    pgtype.Timestamptz
	DeletedAt    pgtype.Timestamptz
}

type FeatureFlagValue

type FeatureFlagValue struct {
	FeatureFlagID int64
	EnvironmentID int64
	Value         string
	UpdatedAt     pgtype.Timestamptz
	DeletedAt     pgtype.Timestamptz
}

type FlagType

type FlagType string
const (
	FlagTypeBoolean      FlagType = "boolean"
	FlagTypeString       FlagType = "string"
	FlagTypeInteger      FlagType = "integer"
	FlagTypeJson         FlagType = "json"
	FlagTypeStringArray  FlagType = "string_array"
	FlagTypeIntegerArray FlagType = "integer_array"
)

func (*FlagType) Scan

func (e *FlagType) Scan(src interface{}) error

func (FlagType) ToAPIEnum

func (t FlagType) ToAPIEnum() (flagType oapi.FlagType, fault error)

type GetEnvFlagValueByFlagIdAndEnvironmentNameParams

type GetEnvFlagValueByFlagIdAndEnvironmentNameParams struct {
	FlagID          int64
	EnvironmentName string
}

type GetEnvFlagValueByFlagIdAndEnvironmentNameRow

type GetEnvFlagValueByFlagIdAndEnvironmentNameRow struct {
	Name         string
	ID           int64
	ValueType    FlagType
	DefaultValue string
	Value        string
	Environment  string
}

type GetEnvFlagValueByFlagIdAndEnvironmentRow

type GetEnvFlagValueByFlagIdAndEnvironmentRow struct {
	Id          int64
	Name        string
	Type        string
	Default     string
	Environment string
	Value       string
}

type GetEnvFlagValueByFlagIdRow

type GetEnvFlagValueByFlagIdRow struct {
	Name         string
	ID           int64
	ValueType    FlagType
	DefaultValue string
	Value        string
	Environment  string
}

type GetFlagsByEnvironmentNameRow

type GetFlagsByEnvironmentNameRow struct {
	FeatureFlag      FeatureFlag
	Environment      Environment
	FeatureFlagValue FeatureFlagValue
}

type GetFlagsRow

type GetFlagsRow struct {
	FeatureFlag      FeatureFlag
	Environment      Environment
	FeatureFlagValue FeatureFlagValue
}

type Info

type Info struct {
	Hostname   string
	Port       string
	Database   string
	Migrations MigrationInfo
}

type MigrationFS

type MigrationFS struct {
	FS embed.FS
}

func (MigrationFS) Glob

func (m MigrationFS) Glob(pattern string) (matches []string, fault error)

func (MigrationFS) Open

func (m MigrationFS) Open(name string) (file fs.File, fault error)

func (MigrationFS) ReadDir

func (m MigrationFS) ReadDir(name string) ([]fs.FileInfo, error)

func (MigrationFS) ReadFile

func (m MigrationFS) ReadFile(name string) (contents []byte, fault error)

type MigrationInfo

type MigrationInfo struct {
	CurrentVersion int32
	TargetVersion  int32
	Stages         []Stage
	Summary        string
}

type NullFlagType

type NullFlagType struct {
	FlagType FlagType
	Valid    bool // Valid is true if FlagType is not NULL
}

func (*NullFlagType) Scan

func (ns *NullFlagType) Scan(value interface{}) error

Scan implements the Scanner interface.

func (NullFlagType) Value

func (ns NullFlagType) Value() (driver.Value, error)

Value implements the driver Valuer interface.

type PageFlagsParams

type PageFlagsParams struct {
	Sort pgtype.Text
	Page int64
	Size int64
}

type PageFlagsRow

type PageFlagsRow struct {
	FeatureFlag      FeatureFlag
	Environment      Environment
	FeatureFlagValue FeatureFlagValue
}

type Querier

type Querier interface {
	AddFlag(ctx context.Context, arg AddFlagParams) (FeatureFlag, error)
	GetEnvFlagValueByFlagId(ctx context.Context, flagID int64) (GetEnvFlagValueByFlagIdRow, error)
	GetEnvFlagValueByFlagIdAndEnvironmentName(ctx context.Context, arg GetEnvFlagValueByFlagIdAndEnvironmentNameParams) (GetEnvFlagValueByFlagIdAndEnvironmentNameRow, error)
	GetFlags(ctx context.Context) ([]GetFlagsRow, error)
	GetFlagsByEnvironmentName(ctx context.Context, environmentName string) ([]GetFlagsByEnvironmentNameRow, error)
	ListEnvironments(ctx context.Context) ([]string, error)
	PageFlags(ctx context.Context, arg PageFlagsParams) ([]PageFlagsRow, error)
	SetEnvFlagToDefault(ctx context.Context, arg SetEnvFlagToDefaultParams) error
}

type Queries

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

func New

func New(db DBTX) *Queries

func (*Queries) AddFlag

func (q *Queries) AddFlag(ctx context.Context, arg AddFlagParams) (FeatureFlag, error)

func (*Queries) GetEnvFlagValueByFlagId

func (q *Queries) GetEnvFlagValueByFlagId(ctx context.Context, flagID int64) (GetEnvFlagValueByFlagIdRow, error)

func (*Queries) GetEnvFlagValueByFlagIdAndEnvironment

func (q *Queries) GetEnvFlagValueByFlagIdAndEnvironment(ctx context.Context, flagID int64, environment string) (result GetEnvFlagValueByFlagIdAndEnvironmentRow, fault error)

func (*Queries) GetFlags

func (q *Queries) GetFlags(ctx context.Context) ([]GetFlagsRow, error)

func (*Queries) GetFlagsByEnvironmentName

func (q *Queries) GetFlagsByEnvironmentName(ctx context.Context, environmentName string) ([]GetFlagsByEnvironmentNameRow, error)

func (*Queries) ListEnvironments

func (q *Queries) ListEnvironments(ctx context.Context) ([]string, error)

func (*Queries) PageFlags

func (q *Queries) PageFlags(ctx context.Context, arg PageFlagsParams) ([]PageFlagsRow, error)

func (*Queries) SetEnvFlagToDefault

func (q *Queries) SetEnvFlagToDefault(ctx context.Context, arg SetEnvFlagToDefaultParams) error

func (*Queries) WithTx

func (q *Queries) WithTx(tx pgx.Tx) *Queries

type Secret

type Secret string

func (Secret) LogValue

func (Secret) LogValue() slog.Value

type SetEnvFlagToDefaultParams

type SetEnvFlagToDefaultParams struct {
	FlagID       int64
	DefaultValue string
}

type Stage

type Stage struct {
	Sequence int32
	Name     string
	Migrated bool
}

Jump to

Keyboard shortcuts

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