This section is empty.


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


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 bool, v int64, checksum string) 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 NumericComponent

          func NumericComponent(name string) (int64, error)

            look for migration scripts with names in the form:


            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 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.


                type CheckSumRecord

                type CheckSumRecord struct {
                	Checksum string

                type DBConf

                type DBConf struct {
                	MigrationsDir string
                	Env           string
                	Driver        DBDriver
                	PgSchema      string

                func NewDBConf

                func NewDBConf(p, env string, pgschema 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 Migration

                      type Migration struct {
                      	Version  int64
                      	Next     int64  // next version, or -1 if none
                      	Previous int64  // previous version, -1 if none
                      	Source   string // path to .go or .sql script

                      func CollectMigrations

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

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

                        func PreviousMigrations

                        func PreviousMigrations(dirpath string, current int64) (m []*Migration, err error)

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

                          type MigrationRecord

                          type MigrationRecord struct {
                          	VersionId int64
                          	TStamp    time.Time
                          	IsApplied bool // was this a result of up() or down()

                          type MySqlDialect

                          type MySqlDialect struct{}

                          type PostgresDialect

                          type PostgresDialect 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{}