40 строки
959 B
Go
40 строки
959 B
Go
package netaddr
|
|
|
|
import (
|
|
"database/sql"
|
|
"os"
|
|
|
|
_ "github.com/lib/pq" // postgres driver
|
|
)
|
|
|
|
type Fatalistic interface {
|
|
Fatal(args ...interface{})
|
|
}
|
|
|
|
func openTestConn(t Fatalistic) *sql.DB {
|
|
host := getEnv("DATABASE_HOST", getEnv("DB_HOST", "localhost"))
|
|
if os.Getenv("CI") != "" && os.Getenv("DATABASE_HOST") == "" && os.Getenv("DB_HOST") == "" {
|
|
host = "postgres"
|
|
}
|
|
port := getEnv("DATABASE_PORT", getEnv("DB_PORT", "35432"))
|
|
user := getEnv("DATABASE_USER", getEnv("DB_USER", "rsmon"))
|
|
password := getEnv("DATABASE_PASSWORD", getEnv("DB_PASSWORD", "rsmon"))
|
|
dbname := getEnv("DATABASE_NAME", getEnv("DB_NAME", "rsmon_test"))
|
|
conn, err := sql.Open(
|
|
"postgres",
|
|
"host="+host+" port="+port+" user="+user+" password="+password+" dbname="+dbname+" sslmode=disable",
|
|
)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
return conn
|
|
}
|
|
|
|
func getEnv(key, fallback string) string {
|
|
if value := os.Getenv(key); value != "" {
|
|
return value
|
|
}
|
|
return fallback
|
|
}
|