Merged in feature/psql (pull request #66)

Add postgres to Devbox

* addcmd
This commit is contained in:
Michael McGuinness
2025-02-14 12:04:15 +00:00
parent 0df3d16976
commit a6991079de
12 changed files with 249 additions and 123 deletions
+4 -4
View File
@@ -5,15 +5,15 @@ services:
ports:
- 5431:5432
environment:
POSTGRES_DB: ${DB_NAME}
POSTGRES_PASSWORD: ${DB_PASS}
POSTGRES_USER: ${DB_USER}
POSTGRES_DB: ${PGDATABASE}
POSTGRES_PASSWORD: ${PGPASSWORD}
POSTGRES_USER: ${PGUSER}
expose:
- 5431
volumes:
- generate-db-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER}"]
test: ["CMD-SHELL", "pg_isready -U ${PGUSER}"]
interval: 10s
timeout: 5s
retries: 5
+49 -49
View File
@@ -20,11 +20,11 @@ services:
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}
AWS_REGION: ${AWS_REGION}
DB_USER: ${DB_USER}
DB_PASS: ${DB_PASS}
DB_HOST: db
DB_PORT: 5432
DB_NAME: ${DB_NAME}
PGUSER: ${PGUSER}
PGPASSWORD: ${PGPASSWORD}
PGHOST: db
PGPORT: 5432
PGDATABASE: ${PGDATABASE}
DB_NOSSL: ${DB_NOSSL}
AWS_ENDPOINT_URL: "http://localstack:4566"
AWS_S3_USE_PATH_STYLE: true
@@ -44,11 +44,11 @@ services:
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}
AWS_REGION: ${AWS_REGION}
DB_USER: ${DB_USER}
DB_PASS: ${DB_PASS}
DB_HOST: db
DB_PORT: 5432
DB_NAME: ${DB_NAME}
PGUSER: ${PGUSER}
PGPASSWORD: ${PGPASSWORD}
PGHOST: db
PGPORT: 5432
PGDATABASE: ${PGDATABASE}
DB_NOSSL: ${DB_NOSSL}
AWS_ENDPOINT_URL: "http://localstack:4566"
AWS_S3_USE_PATH_STYLE: true
@@ -75,11 +75,11 @@ services:
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}
AWS_REGION: ${AWS_REGION}
DB_USER: ${DB_USER}
DB_PASS: ${DB_PASS}
DB_HOST: db
DB_PORT: 5432
DB_NAME: ${DB_NAME}
PGUSER: ${PGUSER}
PGPASSWORD: ${PGPASSWORD}
PGHOST: db
PGPORT: 5432
PGDATABASE: ${PGDATABASE}
DB_NOSSL: ${DB_NOSSL}
AWS_ENDPOINT_URL: "http://localstack:4566"
AWS_S3_USE_PATH_STYLE: true
@@ -106,11 +106,11 @@ services:
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}
AWS_REGION: ${AWS_REGION}
DB_USER: ${DB_USER}
DB_PASS: ${DB_PASS}
DB_HOST: db
DB_PORT: 5432
DB_NAME: ${DB_NAME}
PGUSER: ${PGUSER}
PGPASSWORD: ${PGPASSWORD}
PGHOST: db
PGPORT: 5432
PGDATABASE: ${PGDATABASE}
DB_NOSSL: ${DB_NOSSL}
AWS_ENDPOINT_URL: "http://localstack:4566"
AWS_S3_USE_PATH_STYLE: true
@@ -137,11 +137,11 @@ services:
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}
AWS_REGION: ${AWS_REGION}
DB_USER: ${DB_USER}
DB_PASS: ${DB_PASS}
DB_HOST: db
DB_PORT: 5432
DB_NAME: ${DB_NAME}
PGUSER: ${PGUSER}
PGPASSWORD: ${PGPASSWORD}
PGHOST: db
PGPORT: 5432
PGDATABASE: ${PGDATABASE}
DB_NOSSL: ${DB_NOSSL}
AWS_ENDPOINT_URL: "http://localstack:4566"
AWS_S3_USE_PATH_STYLE: true
@@ -168,11 +168,11 @@ services:
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}
AWS_REGION: ${AWS_REGION}
DB_USER: ${DB_USER}
DB_PASS: ${DB_PASS}
DB_HOST: db
DB_PORT: 5432
DB_NAME: ${DB_NAME}
PGUSER: ${PGUSER}
PGPASSWORD: ${PGPASSWORD}
PGHOST: db
PGPORT: 5432
PGDATABASE: ${PGDATABASE}
DB_NOSSL: ${DB_NOSSL}
AWS_ENDPOINT_URL: "http://localstack:4566"
AWS_S3_USE_PATH_STYLE: true
@@ -199,11 +199,11 @@ services:
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}
AWS_REGION: ${AWS_REGION}
DB_USER: ${DB_USER}
DB_PASS: ${DB_PASS}
DB_HOST: db
DB_PORT: 5432
DB_NAME: ${DB_NAME}
PGUSER: ${PGUSER}
PGPASSWORD: ${PGPASSWORD}
PGHOST: db
PGPORT: 5432
PGDATABASE: ${PGDATABASE}
DB_NOSSL: ${DB_NOSSL}
AWS_ENDPOINT_URL: "http://localstack:4566"
AWS_S3_USE_PATH_STYLE: true
@@ -230,11 +230,11 @@ services:
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}
AWS_REGION: ${AWS_REGION}
DB_USER: ${DB_USER}
DB_PASS: ${DB_PASS}
DB_HOST: db
DB_PORT: 5432
DB_NAME: ${DB_NAME}
PGUSER: ${PGUSER}
PGPASSWORD: ${PGPASSWORD}
PGHOST: db
PGPORT: 5432
PGDATABASE: ${PGDATABASE}
DB_NOSSL: ${DB_NOSSL}
AWS_ENDPOINT_URL: "http://localstack:4566"
AWS_S3_USE_PATH_STYLE: true
@@ -261,11 +261,11 @@ services:
AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY}
AWS_SESSION_TOKEN: ${AWS_SESSION_TOKEN}
AWS_REGION: ${AWS_REGION}
DB_USER: ${DB_USER}
DB_PASS: ${DB_PASS}
DB_HOST: db
DB_PORT: 5432
DB_NAME: ${DB_NAME}
PGUSER: ${PGUSER}
PGPASSWORD: ${PGPASSWORD}
PGHOST: db
PGPORT: 5432
PGDATABASE: ${PGDATABASE}
DB_NOSSL: ${DB_NOSSL}
AWS_ENDPOINT_URL: "http://localstack:4566"
AWS_S3_USE_PATH_STYLE: true
@@ -292,15 +292,15 @@ services:
ports:
- 5432:5432
environment:
POSTGRES_DB: ${DB_NAME}
POSTGRES_PASSWORD: ${DB_PASS}
POSTGRES_USER: ${DB_USER}
POSTGRES_DB: ${PGDATABASE}
POSTGRES_PASSWORD: ${PGPASSWORD}
POSTGRES_USER: ${PGUSER}
expose:
- 5432
volumes:
- db-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER}"]
test: ["CMD-SHELL", "pg_isready -U ${PGUSER}"]
interval: 10s
timeout: 5s
retries: 5
+4 -4
View File
@@ -5,15 +5,15 @@ services:
ports:
- 5430:5432
environment:
POSTGRES_DB: ${DB_NAME}
POSTGRES_PASSWORD: ${DB_PASS}
POSTGRES_USER: ${DB_USER}
POSTGRES_DB: ${PGDATABASE}
POSTGRES_PASSWORD: ${PGPASSWORD}
POSTGRES_USER: ${PGUSER}
expose:
- 5431
volumes:
- test-db-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${DB_USER}"]
test: ["CMD-SHELL", "pg_isready -U ${PGUSER}"]
interval: 10s
timeout: 5s
retries: 5
+1 -1
View File
@@ -22,4 +22,4 @@ http:// localhost: [port] /targets
### Local with service on host
If you need to run a service directly on the host for debugging then use
`task compose:up:test` and then run the service like
`DB_PORT=5430 go run ./cmd/queryService`
`PGPORT=5430 go run ./cmd/queryService`
+34 -33
View File
@@ -17,46 +17,47 @@
"nodePackages.jsonlint@1.6.3",
"oapi-codegen@2.4.1",
"vacuum-go@0.14.1",
"awscli2@2.19.0"
"awscli2@2.19.0",
"postgresql@17.2"
],
"shell": {
"init_hook": [
"export DB_URI=postgres://${DB_USER}:${DB_PASS}@${DB_HOST}:${DB_PORT}/${DB_NAME}?sslmode=disable",
"export DB_URI_GENERATE=postgres://${DB_USER}:${DB_PASS}@${DB_HOST}:${DB_PORT_GENERATE}/${DB_NAME}?sslmode=disable",
"export DB_URI=postgres://${PGUSER}:${PGPASSWORD}@${PGHOST}:${PGPORT}/${PGDATABASE}?sslmode=disable",
"export DB_URI_GENERATE=postgres://${PGUSER}:${PGPASSWORD}@${PGHOST}:${PGPORT_GENERATE}/${PGDATABASE}?sslmode=disable",
"echo 'Welcome to the DoczyAI devbox!'"
]
},
"env": {
"APP_ENV": "development",
"DB_USER": "postgres",
"DB_PASS": "pass",
"DB_HOST": "localhost",
"DB_PORT": "5432",
"DB_PORT_GENERATE": "5431",
"DB_NAME": "query_orchestration",
"DB_NOSSL": "true",
"AWS_ACCESS_KEY_ID": "test",
"AWS_SECRET_ACCESS_KEY": "test",
"AWS_SESSION_TOKEN": "",
"AWS_REGION": "us-east-1",
"AWS_ENDPOINT_URL": "http://localhost:4566",
"QNAME_DOCUMENT_INIT": "document_init",
"QNAME_DOCUMENT_SYNC": "document_sync",
"QNAME_DOCUMENT_CLEAN": "document_clean",
"QNAME_DOCUMENT_TEXT": "document_text",
"QNAME_QUERY_SYNC": "query_sync",
"QNAME_QUERY_RUNNER": "query_runner",
"QNAME_JOB_SYNC": "job_sync",
"QNAME_QUERY_VERSION_SYNC": "query_version_sync",
"DOCUMENT_INIT_URL": "http://localstack:4566/queue/us-east-1/000000000000/document_init",
"DOCUMENT_SYNC_URL": "http://localstack:4566/queue/us-east-1/000000000000/document_sync",
"DOCUMENT_CLEAN_URL": "http://localstack:4566/queue/us-east-1/000000000000/document_clean",
"DOCUMENT_TEXT_URL": "http://localstack:4566/queue/us-east-1/000000000000/document_text",
"QUERY_SYNC_URL": "http://localstack:4566/queue/us-east-1/000000000000/query_sync",
"QUERY_URL": "http://localstack:4566/queue/us-east-1/000000000000/query_runner",
"JOB_SYNC_URL": "http://localstack:4566/queue/us-east-1/000000000000/job_sync",
"QUERY_VERSION_SYNC_URL": "http://localstack:4566/queue/us-east-1/000000000000/query_version_sync",
"BUCKET_IN": "documentin"
"APP_ENV": "development",
"PGUSER": "postgres",
"PGPASSWORD": "pass",
"PGHOST": "localhost",
"PGPORT": "5432",
"PGPORT_GENERATE": "5431",
"PGDATABASE": "query_orchestration",
"DB_NOSSL": "true",
"AWS_ACCESS_KEY_ID": "test",
"AWS_SECRET_ACCESS_KEY": "test",
"AWS_SESSION_TOKEN": "",
"AWS_REGION": "us-east-1",
"AWS_ENDPOINT_URL": "http://localhost:4566",
"QNAME_DOCUMENT_INIT": "document_init",
"QNAME_DOCUMENT_SYNC": "document_sync",
"QNAME_DOCUMENT_CLEAN": "document_clean",
"QNAME_DOCUMENT_TEXT": "document_text",
"QNAME_QUERY_SYNC": "query_sync",
"QNAME_QUERY_RUNNER": "query_runner",
"QNAME_JOB_SYNC": "job_sync",
"QNAME_QUERY_VERSION_SYNC": "query_version_sync",
"DOCUMENT_INIT_URL": "http://localstack:4566/queue/us-east-1/000000000000/document_init",
"DOCUMENT_SYNC_URL": "http://localstack:4566/queue/us-east-1/000000000000/document_sync",
"DOCUMENT_CLEAN_URL": "http://localstack:4566/queue/us-east-1/000000000000/document_clean",
"DOCUMENT_TEXT_URL": "http://localstack:4566/queue/us-east-1/000000000000/document_text",
"QUERY_SYNC_URL": "http://localstack:4566/queue/us-east-1/000000000000/query_sync",
"QUERY_URL": "http://localstack:4566/queue/us-east-1/000000000000/query_runner",
"JOB_SYNC_URL": "http://localstack:4566/queue/us-east-1/000000000000/job_sync",
"QUERY_VERSION_SYNC_URL": "http://localstack:4566/queue/us-east-1/000000000000/query_version_sync",
"BUCKET_IN": "documentin"
},
"env_from": ".env"
}
+125
View File
@@ -501,6 +501,131 @@
}
}
},
"postgresql@17.2": {
"last_modified": "2025-02-07T20:06:47Z",
"plugin_version": "0.0.2",
"resolved": "github:NixOS/nixpkgs/e8d0b02af0958823c955aaab3c82b03f54411d91#postgresql",
"source": "devbox-search",
"version": "17.2",
"systems": {
"aarch64-darwin": {
"outputs": [
{
"name": "out",
"path": "/nix/store/jdi529p5wchb3889bd2949g15kgksgzw-postgresql-17.2",
"default": true
},
{
"name": "man",
"path": "/nix/store/xqpcd2fm6d472p02jrmpjniy0459f4pf-postgresql-17.2-man",
"default": true
},
{
"name": "dev",
"path": "/nix/store/ns4clvyr5vhpqlyfljj3pmwpm3n8fh4f-postgresql-17.2-dev"
},
{
"name": "doc",
"path": "/nix/store/vg3gsbgf5yzkpgx4fg0ikxx7k6ng8j2h-postgresql-17.2-doc"
},
{
"name": "lib",
"path": "/nix/store/jp6k12j1175gvv3nsad3x9n506c72vg8-postgresql-17.2-lib"
}
],
"store_path": "/nix/store/jdi529p5wchb3889bd2949g15kgksgzw-postgresql-17.2"
},
"aarch64-linux": {
"outputs": [
{
"name": "out",
"path": "/nix/store/6y9w0b551j2d48h1l9crjv45frjad8if-postgresql-17.2",
"default": true
},
{
"name": "man",
"path": "/nix/store/k4mh9nmhglchjjx791v716zcb78m9fb8-postgresql-17.2-man",
"default": true
},
{
"name": "debug",
"path": "/nix/store/059kmvan7ji9kn8xa72by1nf57cd9dyv-postgresql-17.2-debug"
},
{
"name": "dev",
"path": "/nix/store/z3bb6ajnmdfgz8p3kpmv2dsm5r972jr3-postgresql-17.2-dev"
},
{
"name": "doc",
"path": "/nix/store/f0bisfj86dqq9rz9cd90jx2lp4yxnz1a-postgresql-17.2-doc"
},
{
"name": "lib",
"path": "/nix/store/5sn88ybrys75gklhw21c81m7jwdgm1y9-postgresql-17.2-lib"
}
],
"store_path": "/nix/store/6y9w0b551j2d48h1l9crjv45frjad8if-postgresql-17.2"
},
"x86_64-darwin": {
"outputs": [
{
"name": "out",
"path": "/nix/store/qdpki2j117g1hn3d4bxlmzw5ygxja7x2-postgresql-17.2",
"default": true
},
{
"name": "man",
"path": "/nix/store/r8c8818bdqq1qa2b29qb5vnnb359qk0b-postgresql-17.2-man",
"default": true
},
{
"name": "lib",
"path": "/nix/store/bdwfmv01vfi9csfgxcl32ylj874cxap0-postgresql-17.2-lib"
},
{
"name": "dev",
"path": "/nix/store/clr7mw9wd44nzmnmzfafnj8a35iha5aq-postgresql-17.2-dev"
},
{
"name": "doc",
"path": "/nix/store/x82b0w0b74dk5pxm862cmggd80sc759w-postgresql-17.2-doc"
}
],
"store_path": "/nix/store/qdpki2j117g1hn3d4bxlmzw5ygxja7x2-postgresql-17.2"
},
"x86_64-linux": {
"outputs": [
{
"name": "out",
"path": "/nix/store/xwbdn2l153f3lxd4f09ilgpngbbhvvlb-postgresql-17.2",
"default": true
},
{
"name": "man",
"path": "/nix/store/s1j1fdm3n2w96jyspnz0gb4nbsd51pgk-postgresql-17.2-man",
"default": true
},
{
"name": "debug",
"path": "/nix/store/fypyhdc73zczyyrd9ar15gly43gf7m9p-postgresql-17.2-debug"
},
{
"name": "dev",
"path": "/nix/store/lds1190zlm9ydsmd5byxbz4ifl393myx-postgresql-17.2-dev"
},
{
"name": "doc",
"path": "/nix/store/4bcfji6rh4qffh1bidy1ddm7ndbd9z9b-postgresql-17.2-doc"
},
{
"name": "lib",
"path": "/nix/store/shyk39i057hcsmkj2gf2zz5wa01h44h5-postgresql-17.2-lib"
}
],
"store_path": "/nix/store/xwbdn2l153f3lxd4f09ilgpngbbhvvlb-postgresql-17.2"
}
}
},
"protobuf@28.3": {
"last_modified": "2024-12-03T12:40:06Z",
"resolved": "github:NixOS/nixpkgs/566e53c2ad750c84f6d31f9ccb9d00f823165550#protobuf",
+10 -10
View File
@@ -31,11 +31,11 @@ func TestInitializeConfig(t *testing.T) {
"APP_ENV": "testing",
"BOOL_TEST": "true",
"INT_TEST": "42",
"DB_USER": "postgres",
"DB_PASS": "pass",
"DB_HOST": "localhost",
"DB_PORT": "5432",
"DB_NAME": "query_orchestration",
"PGUSER": "postgres",
"PGPASSWORD": "pass",
"PGHOST": "localhost",
"PGPORT": "5432",
"PGDATABASE": "query_orchestration",
"DB_NOSSL": "true",
"AWS_ACCESS_KEY_ID": "key",
"AWS_SECRET_ACCESS_KEY": "secret",
@@ -51,11 +51,11 @@ func TestInitializeConfig(t *testing.T) {
envVars: map[string]string{
"APP_ENV": "testing",
"BOOL_TEST": "true",
"DB_USER": "postgres",
"DB_PASS": "pass",
"DB_HOST": "localhost",
"DB_PORT": "5432",
"DB_NAME": "query_orchestration",
"PGUSER": "postgres",
"PGPASSWORD": "pass",
"PGHOST": "localhost",
"PGPORT": "5432",
"PGDATABASE": "query_orchestration",
"DB_NOSSL": "true",
"AWS_ACCESS_KEY_ID": "key",
"AWS_SECRET_ACCESS_KEY": "secret",
+6 -6
View File
@@ -14,11 +14,11 @@ func TestPrintConfigRecursive(t *testing.T) {
serviceconfig.ResetConfigInitOnceTestOnly()
os.Clearenv()
envVars := map[string]string{
"DB_USER": "postgres",
"DB_PASS": "password",
"DB_HOST": "localhost",
"DB_PORT": "5432",
"DB_NAME": "query_orchestration",
"PGUSER": "postgres",
"PGPASSWORD": "password",
"PGHOST": "localhost",
"PGPORT": "5432",
"PGDATABASE": "query_orchestration",
"DB_NOSSL": "true",
"AWS_ACCESS_KEY_ID": "key",
"AWS_SECRET_ACCESS_KEY": "password",
@@ -58,7 +58,7 @@ func TestPrintConfigRecursive(t *testing.T) {
// Check that each environment variable value appears in the logs
// except for sensitive values which should be masked
for envKey, envValue := range envVars {
if envKey == "DB_PASS" || envKey == "AWS_SECRET_ACCESS_KEY" {
if envKey == "PGPASSWORD" || envKey == "AWS_SECRET_ACCESS_KEY" {
// Password should be masked
if strings.Contains(logOutput, envValue) {
t.Errorf("Full password should not appear in logs: %s", logOutput)
+5 -5
View File
@@ -9,11 +9,11 @@ import (
)
type DBConfig struct {
DBUser string `env:"DB_USER,required,notEmpty"`
DBSecret string `env:"DB_PASS,required,notEmpty"`
DBHost string `env:"DB_HOST,required,notEmpty"`
DBPort int `env:"DB_PORT,required,notEmpty"`
DBName string `env:"DB_NAME,required,notEmpty"`
DBUser string `env:"PGUSER,required,notEmpty"`
DBSecret string `env:"PGPASSWORD,required,notEmpty"`
DBHost string `env:"PGHOST,required,notEmpty"`
DBPort int `env:"PGPORT,required,notEmpty"`
DBName string `env:"PGDATABASE,required,notEmpty"`
DBNoSSL bool `env:"DB_NOSSL" envDefault:"false"`
DBPool Pool
DBQueries *repository.Queries
@@ -9,7 +9,7 @@ Then you can run your service that exposed the metrics.
## Testing the API service
Start the API server on the host like
`DB_PORT=5430 go run ./cmd/queryService`
`PGPORT=5430 go run ./cmd/queryService`
Once started you will be able to see the raw metrics at
http://localhost:8080/metrics
+5 -5
View File
@@ -30,11 +30,11 @@ type containerConfig struct {
func createContainer(t testing.TB, ctx context.Context, cfg *containerConfig) (testcontainers.Container, func()) {
env := map[string]string{
"DB_USER": cfg.Cfg.GetDBUser(),
"DB_PASS": cfg.Cfg.GetDBSecret(),
"DB_HOST": cfg.Cfg.GetDBHost(),
"DB_NAME": cfg.Cfg.GetDBName(),
"DB_PORT": strconv.Itoa(cfg.Cfg.GetDBPort()),
"PGUSER": cfg.Cfg.GetDBUser(),
"PGPASSWORD": cfg.Cfg.GetDBSecret(),
"PGHOST": cfg.Cfg.GetDBHost(),
"PGDATABASE": cfg.Cfg.GetDBName(),
"PGPORT": strconv.Itoa(cfg.Cfg.GetDBPort()),
"DB_NOSSL": strconv.FormatBool(cfg.Cfg.IsDBNoSSL()),
"AWS_ACCESS_KEY_ID": cfg.Cfg.GetAWSKeyID(),
"AWS_SECRET_ACCESS_KEY": cfg.Cfg.GetAWSSecretKey(),
+5 -5
View File
@@ -86,12 +86,12 @@ func CreateDB(t testing.TB, ctx context.Context, cfg *CreateDatabaseConfig) (tes
DBNoSSL: true,
}
t.Setenv("DB_USER", dbcfg.DBUser)
t.Setenv("DB_PASS", dbcfg.DBSecret)
t.Setenv("DB_NAME", dbcfg.DBName)
t.Setenv("PGUSER", dbcfg.DBUser)
t.Setenv("PGPASSWORD", dbcfg.DBSecret)
t.Setenv("PGDATABASE", dbcfg.DBName)
t.Setenv("DB_NOSSL", fmt.Sprintf("%v", dbcfg.DBNoSSL))
t.Setenv("DB_HOST", dbcfg.DBHost)
t.Setenv("DB_PORT", fmt.Sprint(dbcfg.DBPort))
t.Setenv("PGHOST", dbcfg.DBHost)
t.Setenv("PGPORT", fmt.Sprint(dbcfg.DBPort))
if cfg.Cfg == nil {
SetCfgProvider(t, cfg.Cfg)