Look up Postgres connection parameters from environment variables
Source:R/get_postgres_envvars.R
get_postgres_envvars.RdRetrieves database connection parameters stored in any of the environment variables known by Postgres, using defaults from `...` for parameters not set in the environment. In a standard PEcAn installation only a few of these parameters will ever be set, but we check all of them anyway in case you need to do anything unusual.
Details
The list of environment variables we check is taken from the [Postgres 12 manual](https://postgresql.org/docs/12/libpq-envars.html), but it should apply to older Postgres versions as well. Note that this function only looks for environment variables that control connection parameters; it does not retrieve any of the variables related to per-session behavior (e.g. PGTZ, PGSYSCONFDIR).
Examples
host <- Sys.getenv("PGHOST") # to restore environment after demo
Sys.unsetenv("PGHOST")
get_postgres_envvars()$host # NULL
#> NULL
get_postgres_envvars(host = "default", port = 5432)$host # "default"
#> [1] "default"
# defaults are ignored for a variable that exists
Sys.setenv(PGHOST = "localhost")
get_postgres_envvars()$host # "localhost"
#> [1] "localhost"
get_postgres_envvars(host = "postgres")$host # still "localhost"
#> [1] "localhost"
# To override a set variable, edit the returned list before using it
con_parms <- get_postgres_envvars()
con_parms$host # "localhost"
#> [1] "localhost"
con_parms$host <- "postgres"
# db.open(con_parms)
Sys.setenv(PGHOST = host)