dbmigrate

package
v0.0.0-...-f9f20c5 Latest Latest
Warning

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

Go to latest
Published: Apr 3, 2024 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

View Source
const (
	LockTTLSeconds = 30
)

Variables

View Source
var (
	ErrNilConfig     = errors.New("no config")
	ErrNoKeyspace    = errors.New("no keyspace provided")
	ErrDatabaseDirty = errors.New("database is dirty")
	ErrClosedSession = errors.New("session is closed")
)
View Source
var DefaultMigrationsTable = "schema_migrations"
View Source
var (
	DefaultMultiStatementMaxSize = 10 * 1 << 20 // 10 MB
)

Functions

func RunMigrations

func RunMigrations(log logging.Logger, mode Mode) error

func WithInstance

func WithInstance(session *gocql.Session, config *Config) (database.Driver, error)

Types

type Cassandra

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

func (*Cassandra) Close

func (c *Cassandra) Close() error

func (*Cassandra) Drop

func (c *Cassandra) Drop() error

func (*Cassandra) Lock

func (c *Cassandra) Lock() error

func (*Cassandra) Open

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

func (*Cassandra) Run

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

func (*Cassandra) SetVersion

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

func (*Cassandra) Unlock

func (c *Cassandra) Unlock() error

func (*Cassandra) Version

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

Return current keyspace version

type Config

type Config struct {
	MigrationsTable       string
	KeyspaceName          string
	MultiStatementEnabled bool
	MultiStatementMaxSize int
}

type DBConfig

type DBConfig struct {
	DBAddrs    []string `envconfig:"DB_ADDRESSES" required:"true"`
	EntityName string   `envconfig:"DB_ENTITY_NAME" required:"true"`
	Keyspace   string   `envconfig:"DB_NAME" required:"true"`
	DBName     string   `envconfig:"DB_NAME" required:"true"` // keyspace
	Username   string   `envconfig:"DB_SERVICE_USERNAME" required:"true"`
	Conistency string   `envconfig:"CONSISTENCY" default:"ALL"`
	SourceURI  string   `envconfig:"SOURCE_URI" default:"file:///cassandra/migrations"`
}

type Mode

type Mode int
const (
	UP    Mode = Mode(1)
	DOWN  Mode = Mode(2)
	PURGE Mode = Mode(3)
)

Jump to

Keyboard shortcuts

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