Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions database/dbJob.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,25 +42,27 @@ type JobDBHandlerFunctions interface {
type JobDBHandler struct {
db *helper.Database
EncryptionKey string
WithTimescale bool
}

// NewJobDBHandler creates a new instance of JobDBHandler.
// It initializes the database connection and optionally drops existing tables.
// If withTableDrop is true, it will drop the existing job tables before creating new ones
func NewJobDBHandler(dbConnection *helper.Database, withTableDrop bool, encryptionKey ...string) (*JobDBHandler, error) {
func NewJobDBHandler(dbConnection *helper.Database, dbConfig *helper.DatabaseConfiguration, encryptionKey ...string) (*JobDBHandler, error) {
if dbConnection == nil {
return nil, helper.NewError("database connection validation", fmt.Errorf("database connection is nil"))
}

jobDbHandler := &JobDBHandler{
db: dbConnection,
db: dbConnection,
WithTimescale: dbConfig.WithTimescale,
}

if len(encryptionKey) > 0 {
jobDbHandler.EncryptionKey = encryptionKey[0]
}

if withTableDrop {
if dbConfig.WithTableDrop {
err := dbConnection.DropFunctionsFromPublicSchema(loadSql.JobFunctions)
if err != nil {
return nil, helper.NewError("drop job functions", err)
Expand Down Expand Up @@ -112,7 +114,7 @@ func (r JobDBHandler) CreateTable() error {
defer cancel()

// Use the SQL init() function to create all tables, triggers, and indexes
_, err := r.db.Instance.ExecContext(ctx, `SELECT init_job();`)
_, err := r.db.Instance.ExecContext(ctx, `SELECT init_job($1);`, r.WithTimescale)
if err != nil {
log.Panicf("error initializing job tables: %#v", err)
}
Expand Down Expand Up @@ -623,8 +625,9 @@ func (r JobDBHandler) SelectAllJobsBySearch(search string, lastID int, entries i
// AddRetentionArchive updates the retention archive settings for the job archive.
func (r JobDBHandler) AddRetentionArchive(retention time.Duration) error {
_, err := r.db.Instance.Exec(
`SELECT add_retention_archive($1)`,
`SELECT add_retention_archive($1, $2)`,
int(retention.Hours()/24),
r.WithTimescale,
)
if err != nil {
return helper.NewError("exec", err)
Expand All @@ -636,7 +639,8 @@ func (r JobDBHandler) AddRetentionArchive(retention time.Duration) error {
// RemoveRetentionArchive removes the retention archive settings for the job archive.
func (r JobDBHandler) RemoveRetentionArchive() error {
_, err := r.db.Instance.Exec(
`SELECT remove_retention_archive()`,
`SELECT remove_retention_archive($1)`,
r.WithTimescale,
)
if err != nil {
return helper.NewError("exec", err)
Expand Down
44 changes: 22 additions & 22 deletions database/dbJob_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ func TestJobNewJobDBHandler(t *testing.T) {
t.Run("Valid call NewJobDBHandler", func(t *testing.T) {
database := helper.NewTestDatabase(dbConfig)

jobDbHandler, err := NewJobDBHandler(database, true)
jobDbHandler, err := NewJobDBHandler(database, dbConfig)
assert.NoError(t, err, "Expected NewJobDBHandler to not return an error")
require.NotNil(t, jobDbHandler, "Expected NewJobDBHandler to return a non-nil instance")
require.NotNil(t, jobDbHandler.db, "Expected NewJobDBHandler to have a non-nil database instance")
Expand All @@ -37,7 +37,7 @@ func TestJobNewJobDBHandler(t *testing.T) {
})

t.Run("Invalid call NewJobDBHandler with nil database", func(t *testing.T) {
_, err := NewJobDBHandler(nil, true)
_, err := NewJobDBHandler(nil, dbConfig)
assert.Error(t, err, "Expected error when creating JobDBHandler with nil database")
assert.Contains(t, err.Error(), "database connection is nil", "Expected specific error message for nil database connection")
})
Expand All @@ -51,7 +51,7 @@ func TestJobCheckTableExistance(t *testing.T) {
}
database := helper.NewTestDatabase(dbConfig)

jobDbHandler, err := NewJobDBHandler(database, true)
jobDbHandler, err := NewJobDBHandler(database, dbConfig)
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")

exists, err := jobDbHandler.CheckTablesExistance()
Expand All @@ -67,7 +67,7 @@ func TestJobCreateTable(t *testing.T) {
}
database := helper.NewTestDatabase(dbConfig)

jobDbHandler, err := NewJobDBHandler(database, true)
jobDbHandler, err := NewJobDBHandler(database, dbConfig)
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")

err = jobDbHandler.CreateTable()
Expand All @@ -82,7 +82,7 @@ func TestJobDropTable(t *testing.T) {
}
database := helper.NewTestDatabase(dbConfig)

jobDbHandler, err := NewJobDBHandler(database, true)
jobDbHandler, err := NewJobDBHandler(database, dbConfig)
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")

err = jobDbHandler.DropTables()
Expand All @@ -97,7 +97,7 @@ func TestJobInsertJob(t *testing.T) {
}
database := helper.NewTestDatabase(dbConfig)

jobDbHandler, err := NewJobDBHandler(database, true)
jobDbHandler, err := NewJobDBHandler(database, dbConfig)
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")

job, err := model.NewJob("TestTask", nil, nil)
Expand All @@ -121,7 +121,7 @@ func TestJobInsertJobTx(t *testing.T) {
}
database := helper.NewTestDatabase(dbConfig)

jobDbHandler, err := NewJobDBHandler(database, true)
jobDbHandler, err := NewJobDBHandler(database, dbConfig)
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")

job, err := model.NewJob("TestTask", nil, nil)
Expand Down Expand Up @@ -151,7 +151,7 @@ func TestJobBatchInsertJobs(t *testing.T) {
}
database := helper.NewTestDatabase(dbConfig)

jobDbHandler, err := NewJobDBHandler(database, true)
jobDbHandler, err := NewJobDBHandler(database, dbConfig)
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")

t.Run("Successful batch insert jobs", func(t *testing.T) {
Expand Down Expand Up @@ -249,7 +249,7 @@ func TestJobUpdateJobsInitial(t *testing.T) {
require.NoError(t, err, "Expected UpdateWorker to not return an error")

// Now we can proceed with the job insertion and update
jobDbHandler, err := NewJobDBHandler(database, true)
jobDbHandler, err := NewJobDBHandler(database, dbConfig)
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")

job, err := model.NewJob("TestTask", nil, nil)
Expand All @@ -276,7 +276,7 @@ func TestJobUpdateJobFinal(t *testing.T) {
}
database := helper.NewTestDatabase(dbConfig)

jobDbHandler, err := NewJobDBHandler(database, true)
jobDbHandler, err := NewJobDBHandler(database, dbConfig)
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")

job, err := model.NewJob("TestTask", nil, nil)
Expand All @@ -302,7 +302,7 @@ func TestJobUpdateJobFinalEncrypted(t *testing.T) {
}
database := helper.NewTestDatabase(dbConfig)

jobDbHandler, err := NewJobDBHandler(database, true, "test-encryption-key")
jobDbHandler, err := NewJobDBHandler(database, dbConfig, "test-encryption-key")
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")

job, err := model.NewJob("TestTask", nil, nil)
Expand Down Expand Up @@ -340,7 +340,7 @@ func TestUpdateStaleJobs(t *testing.T) {
}
database := helper.NewTestDatabase(dbConfig)

jobDbHandler, err := NewJobDBHandler(database, true)
jobDbHandler, err := NewJobDBHandler(database, dbConfig)
assert.NoError(t, err, "Expected NewJobDBHandler to not return an error")

workerDbHandler, err := NewWorkerDBHandler(database, true)
Expand Down Expand Up @@ -450,7 +450,7 @@ func TestJobDeleteJob(t *testing.T) {
}
database := helper.NewTestDatabase(dbConfig)

jobDbHandler, err := NewJobDBHandler(database, true)
jobDbHandler, err := NewJobDBHandler(database, dbConfig)
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")

job, err := model.NewJob("TestTask", nil, nil)
Expand Down Expand Up @@ -484,7 +484,7 @@ func TestJobSelectJob(t *testing.T) {
}
database := helper.NewTestDatabase(dbConfig)

jobDbHandler, err := NewJobDBHandler(database, true)
jobDbHandler, err := NewJobDBHandler(database, dbConfig)
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")

job, err := model.NewJob("TestTask", nil, nil)
Expand All @@ -507,7 +507,7 @@ func TestJobSelectJobEncrypted(t *testing.T) {
}
database := helper.NewTestDatabase(dbConfig)

jobDbHandler, err := NewJobDBHandler(database, true, "test-encryption-key")
jobDbHandler, err := NewJobDBHandler(database, dbConfig, "test-encryption-key")
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")

job, err := model.NewJob("TestTask", nil, nil)
Expand Down Expand Up @@ -543,7 +543,7 @@ func TestJobSelectAllJobs(t *testing.T) {
database := helper.NewTestDatabase(dbConfig)

newJobCount := 5
jobDbHandler, err := NewJobDBHandler(database, true)
jobDbHandler, err := NewJobDBHandler(database, dbConfig)
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")

for i := 0; i < newJobCount; i++ {
Expand Down Expand Up @@ -573,7 +573,7 @@ func TestJobSelectAllJobsEncrypted(t *testing.T) {
database := helper.NewTestDatabase(dbConfig)

newJobCount := 5
jobDbHandler, err := NewJobDBHandler(database, true, "test-encryption-key")
jobDbHandler, err := NewJobDBHandler(database, dbConfig, "test-encryption-key")
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")

expectedResultsByTaskName := make(map[string]model.Parameters)
Expand Down Expand Up @@ -641,7 +641,7 @@ func TestJobSelectAllJobsByWorkerRID(t *testing.T) {
require.NoError(t, err, "Expected UpdateWorker to not return an error")

// Insert jobs associated with the worker
jobDbHandler, err := NewJobDBHandler(database, true)
jobDbHandler, err := NewJobDBHandler(database, dbConfig)
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")

for i := 0; i < newJobCount; i++ {
Expand Down Expand Up @@ -673,7 +673,7 @@ func TestJobSelectAllJobsBySearch(t *testing.T) {
newJobCountSearch := 5
newJobCountOther := 3

jobDbHandler, err := NewJobDBHandler(database, true)
jobDbHandler, err := NewJobDBHandler(database, dbConfig)
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")

// Insert multiple jobs with different names
Expand Down Expand Up @@ -711,7 +711,7 @@ func TestJobSelectJobFromArchive(t *testing.T) {
}
database := helper.NewTestDatabase(dbConfig)

jobDbHandler, err := NewJobDBHandler(database, true)
jobDbHandler, err := NewJobDBHandler(database, dbConfig)
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")

job, err := model.NewJob("TestTask", nil, nil)
Expand Down Expand Up @@ -741,7 +741,7 @@ func TestJobSelectAllJobsFromArchive(t *testing.T) {
}
database := helper.NewTestDatabase(dbConfig)

jobDbHandler, err := NewJobDBHandler(database, true)
jobDbHandler, err := NewJobDBHandler(database, dbConfig)
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")

newJobCount := 5
Expand Down Expand Up @@ -780,7 +780,7 @@ func TestJobSelectAllJobsFromArchiveBySearch(t *testing.T) {
newJobCountSearch := 5
newJobCountOther := 3

jobDbHandler, err := NewJobDBHandler(database, true)
jobDbHandler, err := NewJobDBHandler(database, dbConfig)
require.NoError(t, err, "Expected NewJobDBHandler to not return an error")

// Insert multiple jobs with different names
Expand Down
2 changes: 1 addition & 1 deletion database/main_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ var dbPort string
func TestMain(m *testing.M) {
var teardown func(ctx context.Context, opts ...testcontainers.TerminateOption) error
var err error
teardown, dbPort, err = helper.MustStartPostgresContainer()
teardown, dbPort, err = helper.MustStartTimescaleContainer()
if err != nil {
log.Fatalf("error starting postgres container: %v", err)
}
Expand Down
12 changes: 4 additions & 8 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ go 1.25.2
require (
github.com/google/uuid v1.6.0
github.com/joho/godotenv v1.5.1
github.com/labstack/echo/v5 v5.0.3
github.com/lib/pq v1.10.9
github.com/stretchr/testify v1.11.1
github.com/testcontainers/testcontainers-go v0.40.0
Expand All @@ -17,14 +18,10 @@ require (
github.com/containerd/errdefs v1.0.0 // indirect
github.com/containerd/errdefs/pkg v0.3.0 // indirect
github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/labstack/gommon v0.4.2 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mattn/go-runewidth v0.0.19 // indirect
github.com/spf13/pflag v1.0.10 // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
github.com/valyala/fasttemplate v1.2.2 // indirect
golang.org/x/net v0.47.0 // indirect
golang.org/x/time v0.14.0 // indirect
)

Expand All @@ -50,7 +47,6 @@ require (
github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.3 // indirect
github.com/jedib0t/go-pretty/v6 v6.7.5
github.com/klauspost/compress v1.18.1 // indirect
github.com/labstack/echo/v4 v4.13.4
github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3 // indirect
github.com/magiconair/properties v1.8.10 // indirect
github.com/moby/docker-image-spec v1.3.1 // indirect
Expand Down Expand Up @@ -79,9 +75,9 @@ require (
go.opentelemetry.io/otel v1.38.0 // indirect
go.opentelemetry.io/otel/metric v1.38.0 // indirect
go.opentelemetry.io/otel/trace v1.38.0 // indirect
golang.org/x/crypto v0.45.0 // indirect
golang.org/x/sys v0.38.0 // indirect
golang.org/x/text v0.31.0 // indirect
golang.org/x/crypto v0.47.0 // indirect
golang.org/x/sys v0.40.0 // indirect
golang.org/x/text v0.33.0 // indirect
google.golang.org/grpc v1.77.0 // indirect
google.golang.org/protobuf v1.36.10 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
Expand Down
34 changes: 14 additions & 20 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,8 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/labstack/echo/v4 v4.13.4 h1:oTZZW+T3s9gAu5L8vmzihV7/lkXGZuITzTQkTEhcXEA=
github.com/labstack/echo/v4 v4.13.4/go.mod h1:g63b33BZ5vZzcIUF8AtRH40DrTlXnx4UMC8rBdndmjQ=
github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0=
github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU=
github.com/labstack/echo/v5 v5.0.3 h1:Jql8sDtCYXrhh2Mbs6jKwjR6r7X8FSQQmch+w6QS7kc=
github.com/labstack/echo/v5 v5.0.3/go.mod h1:SyvlSdObGjRXeQfCCXW/sybkZdOOQZBmpKF0bvALaeo=
github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=
github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3 h1:PwQumkgq4/acIiZhtifTV5OUqqiP82UAl0h87xj/l9k=
Expand Down Expand Up @@ -150,10 +148,6 @@ github.com/tklauser/go-sysconf v0.3.16 h1:frioLaCQSsF5Cy1jgRBrzr6t502KIIwQ0MArYI
github.com/tklauser/go-sysconf v0.3.16/go.mod h1:/qNL9xxDhc7tx3HSRsLWNnuzbVfh3e7gh/BmM179nYI=
github.com/tklauser/numcpus v0.11.0 h1:nSTwhKH5e1dMNsCdVBukSZrURJRoHbSEQjdEbY+9RXw=
github.com/tklauser/numcpus v0.11.0/go.mod h1:z+LwcLq54uWZTX0u/bGobaV34u6V7KNlTZejzM6/3MQ=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo=
github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ=
github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
Expand All @@ -176,24 +170,24 @@ go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJr
go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=
golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=
golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=
golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8=
golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A=
golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o=
golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8=
golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4=
golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU=
golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254=
golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ=
golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/term v0.39.0 h1:RclSuaJf32jOqZz74CkPA9qFuVTX7vhLlpfj/IGWlqY=
golang.org/x/term v0.39.0/go.mod h1:yxzUCTP/U+FzoxfdKmLaA0RV1WgE0VY7hXBwKtY/4ww=
golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE=
golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8=
golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI=
golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4=
google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 h1:mepRgnBZa07I4TRuomDE4sTIYieg/osKmzIf4USdWS4=
Expand Down
2 changes: 2 additions & 0 deletions helper/database.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ type DatabaseConfiguration struct {
Schema string
SSLMode string
WithTableDrop bool
WithTimescale bool
}

// NewDatabaseConfiguration creates a new DatabaseConfiguration instance.
Expand All @@ -73,6 +74,7 @@ func NewDatabaseConfiguration() (*DatabaseConfiguration, error) {
Schema: os.Getenv("QUEUER_DB_SCHEMA"),
SSLMode: os.Getenv("QUEUER_DB_SSLMODE"),
WithTableDrop: os.Getenv("QUEUER_DB_WITH_TABLE_DROP") == "true",
WithTimescale: os.Getenv("QUEUER_DB_WITH_TIMESCALE") != "false",
}
if len(strings.TrimSpace(config.Host)) == 0 || len(strings.TrimSpace(config.Port)) == 0 || len(strings.TrimSpace(config.Database)) == 0 || len(strings.TrimSpace(config.Username)) == 0 || len(strings.TrimSpace(config.Password)) == 0 || len(strings.TrimSpace(config.Schema)) == 0 {
return nil, fmt.Errorf("QUEUER_DB_HOST, QUEUER_DB_PORT, QUEUER_DB_DATABASE, QUEUER_DB_USERNAME, QUEUER_DB_PASSWORD and QUEUER_DB_SCHEMA environment variables must be set")
Expand Down
Loading