goose

package
v0.0.0-...-e03c324 Latest Latest
Warning

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

Go to latest
Published: Nov 10, 2015 License: MIT Imports: 19 Imported by: 2

Documentation

Index

Constants

View Source
const (
	DirectionDown = Direction(false)
	DirectionUp   = Direction(true)
)

Variables

View Source
var (
	ErrTableDoesNotExist = errors.New("table does not exist")
	ErrNoPreviousVersion = errors.New("no previous version found")
)

Functions

func Asset

func Asset(name string) ([]byte, error)

Asset loads and returns the asset for the given name. It returns an error if the asset could not be found or could not be loaded.

func AssetDir

func AssetDir(name string) ([]string, error)

AssetDir returns the file names below a certain directory embedded in the file by go-bindata. For example if you run go-bindata on data/... and data contains the following hierarchy:

data/
  foo.txt
  img/
    a.png
    b.png

then AssetDir("data") would return []string{"foo.txt", "img"} AssetDir("data/img") would return []string{"a.png", "b.png"} AssetDir("foo.txt") and AssetDir("notexist") would return an error AssetDir("") will return []string{"data"}.

func AssetInfo

func AssetInfo(name string) (os.FileInfo, error)

AssetInfo loads and returns the asset info for the given name. It returns an error if the asset could not be found or could not be loaded.

func AssetNames

func AssetNames() []string

AssetNames returns the names of the assets.

func CreateMigration

func CreateMigration(name, migrationType, dir string, t time.Time) (path string, err error)

func EnsureDBVersion

func EnsureDBVersion(conf *DBConf, db *sql.DB) (int64, error)

retrieve the current version for this DB. Create and initialize the DB version table if it doesn't exist.

func FinalizeMigration

func FinalizeMigration(conf *DBConf, txn *sql.Tx, direction Direction, v int64) error

Update the version table for the given migration, and finalize the transaction.

func GetDBVersion

func GetDBVersion(conf *DBConf) (version int64, err error)

wrapper for EnsureDBVersion for callers that don't already have their own DB instance

func GetMostRecentDBVersion

func GetMostRecentDBVersion(dirpath string) (version int64, err error)

helper to identify the most recent possible version within a folder of migration scripts

func GetPreviousDBVersion

func GetPreviousDBVersion(dirpath string, version int64) (previous int64, err error)

func MustAsset

func MustAsset(name string) []byte

MustAsset is like Asset but panics when Asset would return an error. It simplifies safe initialization of global variables.

func NumericComponent

func NumericComponent(name string) (int64, error)

look for migration scripts with names in the form:

XXX_descriptivename.ext

where XXX specifies the version number and ext specifies the type of migration

func OpenDBFromDBConf

func OpenDBFromDBConf(conf *DBConf) (*sql.DB, error)

OpenDBFromDBConf wraps database/sql.DB.Open() and configures the newly opened DB based on the given DBConf.

Callers must Close() the returned DB.

func RestoreAsset

func RestoreAsset(dir, name string) error

RestoreAsset restores an asset under the given directory

func RestoreAssets

func RestoreAssets(dir, name string) error

RestoreAssets restores an asset under the given directory recursively

func RunMigrations

func RunMigrations(conf *DBConf, migrationsDir string, target int64) (err error)

func RunMigrationsOnDb

func RunMigrationsOnDb(conf *DBConf, migrationsDir string, target int64, db *sql.DB) (err error)

Runs migration on a specific database instance.

Types

type DBConf

type DBConf struct {
	MigrationsDir string
	Driver        DBDriver
}

func NewDBConf

func NewDBConf(dbDir, env string) (*DBConf, error)

extract configuration details from the given file

type DBDriver

type DBDriver struct {
	Name    string
	OpenStr string
	Import  string
	Dialect SqlDialect
}

DBDriver encapsulates the info needed to work with a specific database driver

func (*DBDriver) IsValid

func (drv *DBDriver) IsValid() bool

ensure we have enough info about this driver

type Direction

type Direction bool

func (Direction) String

func (d Direction) String() string

type Migration

type Migration struct {
	Version   int64
	IsApplied bool
	TStamp    time.Time
	Source    string // path to .go or .sql script
}

func CollectMigrations

func CollectMigrations(dirpath string) (m []*Migration, err error)

collect all the valid looking migration scripts in the migrations folder, and key them by version

type MySqlDialect

type MySqlDialect struct{}

type PostgresDialect

type PostgresDialect struct{}

type RedshiftDialect

type RedshiftDialect struct{}

type SqlDialect

type SqlDialect interface {
	// contains filtered or unexported methods
}

SqlDialect abstracts the details of specific SQL dialects for goose's few SQL specific statements

type Sqlite3Dialect

type Sqlite3Dialect struct{}

Jump to

Keyboard shortcuts

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