state

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Nov 8, 2023 License: Apache-2.0 Imports: 8 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNoActiveMigration = errors.New("no active migration")

Functions

func ReadSchema

func ReadSchema(ctx context.Context, conn *sql.DB, stateSchema, schemaname string) (*schema.Schema, error)

ReadSchema reads & returns the current schema from postgres

Types

type State

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

func New

func New(ctx context.Context, pgURL, stateSchema string) (*State, error)

func (*State) Close

func (s *State) Close() error

func (*State) Complete

func (s *State) Complete(ctx context.Context, schema, name string) error

Complete marks a migration as completed

func (*State) GetActiveMigration

func (s *State) GetActiveMigration(ctx context.Context, schema string) (*migrations.Migration, error)

GetActiveMigration returns the name & raw content of the active migration (if any), errors out otherwise

func (*State) Init

func (s *State) Init(ctx context.Context) error

func (*State) IsActiveMigrationPeriod

func (s *State) IsActiveMigrationPeriod(ctx context.Context, schema string) (bool, error)

IsActiveMigrationPeriod returns true if there is an active migration

func (*State) LatestVersion

func (s *State) LatestVersion(ctx context.Context, schema string) (*string, error)

LatestVersion returns the name of the latest version schema

func (*State) PreviousVersion

func (s *State) PreviousVersion(ctx context.Context, schema string) (*string, error)

PreviousVersion returns the name of the previous version schema

func (*State) ReadSchema

func (s *State) ReadSchema(ctx context.Context, schemaName string) (*schema.Schema, error)

func (*State) Rollback

func (s *State) Rollback(ctx context.Context, schema, name string) error

Rollback removes a migration from the state (we consider it rolled back, as if it never started)

func (*State) Schema

func (s *State) Schema() string

func (*State) Start

func (s *State) Start(ctx context.Context, schemaname string, migration *migrations.Migration) (*schema.Schema, error)

Start creates a new migration, storing its name and raw content this will effectively activate a new migration period, so `IsActiveMigrationPeriod` will return true until the migration is completed This method will return the current schema (before the migration is applied)

Jump to

Keyboard shortcuts

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