...

Package cockroachdb

import "github.com/golang-migrate/migrate/v4/database/cockroachdb"
Overview
Index

Overview ▾

Variables

var (
    ErrNilConfig      = fmt.Errorf("no config")
    ErrNoDatabaseName = fmt.Errorf("no database name")
)
var DefaultLockTable = "schema_lock"
var DefaultMigrationsTable = "schema_migrations"

func WithInstance

func WithInstance(instance *sql.DB, config *Config) (database.Driver, error)

type CockroachDb

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

func (*CockroachDb) Close

func (c *CockroachDb) Close() error

func (*CockroachDb) Drop

func (c *CockroachDb) Drop() (err error)

func (*CockroachDb) Lock

func (c *CockroachDb) Lock() error

Locking is done manually with a separate lock table. Implementing advisory locks in CRDB is being discussed See: https://github.com/cockroachdb/cockroach/issues/13546

func (*CockroachDb) Open

func (c *CockroachDb) Open(url string) (database.Driver, error)

func (*CockroachDb) Run

func (c *CockroachDb) Run(migration io.Reader) error

func (*CockroachDb) SetVersion

func (c *CockroachDb) SetVersion(version int, dirty bool) error

func (*CockroachDb) Unlock

func (c *CockroachDb) Unlock() error

Locking is done manually with a separate lock table. Implementing advisory locks in CRDB is being discussed See: https://github.com/cockroachdb/cockroach/issues/13546

func (*CockroachDb) Version

func (c *CockroachDb) Version() (version int, dirty bool, err error)

type Config

type Config struct {
    MigrationsTable string
    LockTable       string
    ForceLock       bool
    DatabaseName    string
}