state

package
v0.13.0 Latest Latest
Warning

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

Go to latest
Published: May 22, 2025 License: Apache-2.0 Imports: 11 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

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

Functions

This section is empty.

Types

type BaselineMigration added in v0.13.0

type BaselineMigration struct {
	Name           string
	CreatedAt      time.Time
	SchemaSnapshot schema.Schema
}

BaselineMigration represents a baseline migration record

type HistoryEntry added in v0.12.0

type HistoryEntry struct {
	Migration migrations.RawMigration
	CreatedAt time.Time
}

HistoryEntry represents a single migration in the migration history of a schema

type MigrationStatus added in v0.4.1

type MigrationStatus string
const (
	NoneMigrationStatus       MigrationStatus = "No migrations"
	InProgressMigrationStatus MigrationStatus = "In progress"
	CompleteMigrationStatus   MigrationStatus = "Complete"
)

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) CreateBaseline added in v0.13.0

func (s *State) CreateBaseline(ctx context.Context, schemaName, baselineVersion string) error

CreateBaseline creates a baseline migration that captures the current state of the schema. It marks the migration as 'baseline' type and completed (done=true). This is used when you want to start using pgroll with an existing database.

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) HasExistingSchemaWithoutHistory added in v0.13.0

func (s *State) HasExistingSchemaWithoutHistory(ctx context.Context, schemaName string) (bool, error)

HasExistingSchemaWithoutHistory checks if there's an existing schema with tables but no migration history. Returns true if the schema exists, has tables, but has no pgroll migration history

func (*State) Init

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

Init initializes the required pg_roll schema to store the state

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) IsInitialized added in v0.11.0

func (s *State) IsInitialized(ctx context.Context) (bool, error)

func (*State) LatestBaseline added in v0.13.0

func (s *State) LatestBaseline(ctx context.Context, schemaName string) (*BaselineMigration, error)

LatestBaseline returns the most recent baseline migration for a schema, or nil if no baseline exists

func (*State) LatestVersion

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

LatestVersion returns the name of the latest version schema, or nil if there is none. No active version occurs after initialization, but before the first migration is started.

func (*State) PgConn added in v0.11.0

func (s *State) PgConn() *sql.DB

func (*State) PreviousVersion

func (s *State) PreviousVersion(ctx context.Context, schema string, includeInferred bool) (*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)

ReadSchema reads the schema for the specified schema name

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

Schema returns the schema name

func (*State) SchemaAfterMigration added in v0.9.0

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

SchemaAfterMigration reads the schema after the migration `version` was applied to `schemaName`

func (*State) SchemaHistory added in v0.8.0

func (s *State) SchemaHistory(ctx context.Context, schema string) ([]HistoryEntry, error)

SchemaHistory returns all migrations applied to a schema since the most recent baseline in ascending timestamp order

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)

func (*State) Status added in v0.4.1

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

Status returns the current migration status of the specified schema

type Status added in v0.4.1

type Status struct {
	// The schema name.
	Schema string `json:"schema"`

	// The name of the latest version schema.
	Version string `json:"version"`

	// The status of the most recent migration.
	Status MigrationStatus `json:"status"`
}

Status describes the current migration status of a database schema.

Jump to

Keyboard shortcuts

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