Categorygithub.com/recursionpharma/go-dbutil
modulepackage
0.0.0-20200901172819-f6dc8a79cbe3
Repository: https://github.com/recursionpharma/go-dbutil.git
Documentation: pkg.go.dev

# README

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.

# Functions

Connect connects to the database specified by the dbURL.
Exists wraps a query with a simple exists check, returning a bool, a la SELECT EXISTS ( -- subquery ) returning a bool example usage: if Exists("SELECT * FROM foo WHERE bar = 'baz'") { // do something }.
GetDriver extracts the driver from the dbURL; for example, it will return postgres for postgres://USER:PASSWORD@HOST:PORT/DBNAME.
No description provided by the author

# Interfaces

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author