Difference between revisions of "Embedded postgresql using golang"

From UVOO Tech Wiki
Jump to navigation Jump to search
(Created page with "package main /* https://pkg.go.dev/github.com/fergusstrange/embedded-postgres#section-readme https://github.com/fergusstrange/embedded-postgres https://github.com/zonkyio/embe...")
 
Line 1: Line 1:
 +
.env
 +
```
 +
export PGDATABASE=demo
 +
export PGHOST=127.0.0.1
 +
export PGPASSWORD=demo
 +
export PGPORT=15432
 +
export PGUSER=demo
 +
```
 +
 +
get package
 +
```
 +
go get -u github.com/fergusstrange/embedded-postgres
 +
```
 +
 +
a.go
 +
```
 
package main
 
package main
 
/*
 
/*
Line 46: Line 62:
 
                 }
 
                 }
 
}
 
}
 +
```

Revision as of 03:48, 11 March 2022

.env

export PGDATABASE=demo
export PGHOST=127.0.0.1
export PGPASSWORD=demo
export PGPORT=15432
export PGUSER=demo

get package

go get -u github.com/fergusstrange/embedded-postgres

a.go

package main
/*
https://pkg.go.dev/github.com/fergusstrange/embedded-postgres#section-readme
https://github.com/fergusstrange/embedded-postgres
https://github.com/zonkyio/embedded-postgres
https://mvnrepository.com/artifact/io.zonky.test.postgres/embedded-postgres-binaries-bom
*/

import (
        "bytes"
        "fmt"
        "time"

        "github.com/fergusstrange/embedded-postgres"
)

func main() {
        runseconds := 60
        // Version("14.2.0").
        // Version("13.6.0").
        // Version("12.10.0").
        logger := &bytes.Buffer{}
        conf := embeddedpostgres.DefaultConfig().
                Username("demo").
                Password("demo").
                Database("demo").
                Version("14.2.0").
                RuntimePath("./pgdata").
                BinaryRepositoryURL("https://repo1.maven.org/maven2").
                Port(15432).
                StartTimeout(15 * time.Second).
                Logger(logger)

        postgres := embeddedpostgres.NewDatabase(conf)
        err := postgres.Start()
                if err != nil {
                        fmt.Println(err)
                }

        fmt.Printf("Running postgres server for %d seconds.", runseconds)
        time.Sleep(time.Duration(runseconds) * time.Second)

        err = postgres.Stop()
                if err != nil {
                        fmt.Println(err)
                }
}