Skip to content

Latest commit

 

History

History
70 lines (57 loc) · 1.36 KB

README.md

File metadata and controls

70 lines (57 loc) · 1.36 KB

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.