An open API service indexing awesome lists of open source software.

https://github.com/recursionpharma/go-dbutil

Golang utilities for interacting with databases
https://github.com/recursionpharma/go-dbutil

Last synced: 5 months ago
JSON representation

Golang utilities for interacting with databases

Awesome Lists containing this project

README

          

[![scorecard-score](https://github.com/recursionpharma/octo-guard-badges/blob/trunk/badges/repo/go-dbutil/maturity_score.svg?raw=true)](https://infosec-docs.prod.rxrx.io/octoguard/scorecards/go-dbutil)
[![scorecard-status](https://github.com/recursionpharma/octo-guard-badges/blob/trunk/badges/repo/go-dbutil/scorecard_status.svg?raw=true)](https://infosec-docs.prod.rxrx.io/octoguard/scorecards/go-dbutil)
# go-dbutil
Golang utilities for interacting with databases

## Install

go get github.com/recursionpharma/go-dbutil

## Usage

See also `examples_test.go`.

### Given a DB URL, connect to the DB

This is useful since `sql.Open()` requires you to pass the driver in addition to the URL,
even though the driver is embedded in the URL.

import (
"os"
"fmt"
"github.com/recursionpharma/go-dbutil"
)

func main() {
db, err := dbutil.Connect("postgres://USER:PASSWORD@HOST:PORT/DBNAME")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
fmt.Println(db != nil)
// Output: true
}

### Extract the driver from a DB URL

import (
"os"
"fmt"
"github.com/recursionpharma/go-dbutil"
)

func main() {
driver, err := GetDriver("postgres://USER:PASSWORD@HOST:PORT/DBNAME")
if err != nil {
fmt.Println(err)
os.Exit(1)
}
fmt.Println(driver)
// Output: postgres
}

## Directory Structure

```
code/go-dbutil/
|-- dbutil.go
| Code
|-- dbutil_test.go
| Tests
|-- examples_test.go
| Examples
|-- .gitignore
| Files git will ignore
|-- LICENSE
| MIT License
|-- README.md
| This file
`-- .travis.yml
Travis config
```
The above file tree was generated with `tree -a -L 1 --charset ascii`.