db

package
v0.0.0-...-71d8aea Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 5, 2023 License: MIT Imports: 6 Imported by: 0

README

Prerequisites

Install golang-migrate

go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@latest

Install Sqlc

# go install github.com/sqlc-dev/sqlc/cmd/sqlc@latest
# Please see https://github.com/sqlc-dev/sqlc/issues/2149
# Workaround (for linux distros with snap installed):
sudo snap install sqlc

Install GCC

C compiler "GCC" is required by CGO

sudo apt install build-essential
# Or:
# sudo apt install gcc

The build-essential package has its dependencies as gcc, g++ (GCC, but for C++), make and dpkg-dev (to build .deb packages).

Command References

Create New Migration:

migrate create -ext sql -dir db/migrations [name]

Execute migration:

migrate -source file://db/migrations -database postgres://pguser:pgpassword@localhost:5432/starter?sslmode=disable [up/down] [n=all]

Code Generation

go generate ./db

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DB *sql.DB
	Q  = New(Get())
)

Functions

func Get

func Get() *sql.DB

Types

type CreateLinkParams

type CreateLinkParams struct {
	ID          string `json:"id"`
	OriginalUrl string `json:"original_url"`
}

type DBTX

type DBTX interface {
	ExecContext(context.Context, string, ...interface{}) (sql.Result, error)
	PrepareContext(context.Context, string) (*sql.Stmt, error)
	QueryContext(context.Context, string, ...interface{}) (*sql.Rows, error)
	QueryRowContext(context.Context, string, ...interface{}) *sql.Row
}
type Link struct {
	ID          string       `json:"id"`
	OriginalUrl string       `json:"original_url"`
	CreatedAt   sql.NullTime `json:"created_at"`
}

type Queries

type Queries struct {
	// contains filtered or unexported fields
}

func New

func New(db DBTX) *Queries
func (q *Queries) CreateLink(ctx context.Context, arg CreateLinkParams) (Link, error)
func (q *Queries) DeleteLink(ctx context.Context, id string) error
func (q *Queries) GetLink(ctx context.Context, id string) (Link, error)

func (*Queries) GetLinkByOriginalUrl

func (q *Queries) GetLinkByOriginalUrl(ctx context.Context, originalUrl string) (Link, error)

func (*Queries) WithTx

func (q *Queries) WithTx(tx *sql.Tx) *Queries

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL