diff --git a/go.mod b/go.mod index ac891af..e3a86fe 100644 --- a/go.mod +++ b/go.mod @@ -44,7 +44,8 @@ require ( github.com/sirupsen/logrus v1.9.3 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect - go.opentelemetry.io/auto/sdk v1.1.0 // indirect + go.opentelemetry.io/otel/metric v1.33.0 // indirect + go.opentelemetry.io/otel/trace v1.33.0 // indirect golang.org/x/crypto v0.35.0 // indirect golang.org/x/exp v0.0.0-20250218142911-aa4b98e5adaa // indirect golang.org/x/net v0.35.0 // indirect diff --git a/go.sum b/go.sum index 829e050..0563917 100644 --- a/go.sum +++ b/go.sum @@ -138,14 +138,12 @@ go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJyS go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw= go.opentelemetry.io/otel v1.33.0/go.mod h1:SUUkR6csvUQl+yjReHu5uM3EtVV7MBm5FHKRlNx4I8I= -go.opentelemetry.io/otel/metric v1.32.0 h1:xV2umtmNcThh2/a/aCP+h64Xx5wsj8qqnkYZktzNa0M= -go.opentelemetry.io/otel/metric v1.32.0/go.mod h1:jH7CIbbK6SH2V2wE16W05BHCtIDzauciCRLoc/SyMv8= +go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ= go.opentelemetry.io/otel/sdk v1.32.0 h1:RNxepc9vK59A8XsgZQouW8ue8Gkb4jpWtJm9ge5lEG4= go.opentelemetry.io/otel/sdk v1.32.0/go.mod h1:LqgegDBjKMmb2GC6/PrTnteJG39I8/vJCAP9LlJXEjU= go.opentelemetry.io/otel/sdk/metric v1.32.0 h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU= go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ= -go.opentelemetry.io/otel/trace v1.32.0 h1:WIC9mYrXf8TmY/EXuULKc8hR17vE+Hjv2cssQDe03fM= -go.opentelemetry.io/otel/trace v1.32.0/go.mod h1:+i4rkvCraA+tG6AzwloGaCtkx53Fa+L+V8e9a7YvhT8= +go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.35.0 h1:b15kiHdrGCHrP6LvwaQ3c03kgNhhiMgvlhxHQhmg2Xs= diff --git a/postgres.go b/postgres.go index 9616b6c..12cd4c7 100644 --- a/postgres.go +++ b/postgres.go @@ -20,9 +20,10 @@ import ( var _ driver.Driver = &Postgres{} type Postgres struct { - config contracts.ConfigBuilder - db *gorm.DB - log log.Log + config contracts.ConfigBuilder + db *gorm.DB + log log.Log + version string } func NewPostgres(config config.Config, log log.Log, connection string) *Postgres { @@ -49,7 +50,7 @@ func (r *Postgres) Config() database.Config { Prefix: writers[0].Prefix, Schema: writers[0].Schema, Username: writers[0].Username, - Version: r.version(), + Version: r.getVersion(), PlaceholderFormat: sq.Dollar, } } @@ -99,7 +100,11 @@ func (r *Postgres) Processor() contractsschema.Processor { return NewProcessor() } -func (r *Postgres) version() string { +func (r *Postgres) getVersion() string { + if r.version != "" { + return r.version + } + instance, _, err := r.Gorm() if err != nil { return "" @@ -109,8 +114,10 @@ func (r *Postgres) version() string { Value string } if err := instance.Raw("SELECT current_setting('server_version') AS value;").Scan(&version).Error; err != nil { - return fmt.Sprintf("UNKNOWN: %s", err) + r.version = fmt.Sprintf("UNKNOWN: %s", err) + } else { + r.version = version.Value } - return version.Value + return r.version } diff --git a/postgres_test.go b/postgres_test.go index 3d20800..0823cf1 100644 --- a/postgres_test.go +++ b/postgres_test.go @@ -59,7 +59,7 @@ func TestVersion(t *testing.T) { config: mockConfig, log: utils.NewTestLog(), } - version := postgres.version() + version := postgres.getVersion() assert.Contains(t, version, "Debian") assert.NoError(t, docker.Shutdown()) }