package spanner

import "github.com/golang-migrate/migrate/v4/database/spanner"

Index

Constants

const DefaultMigrationsTable = "SchemaMigrations"

DefaultMigrationsTable is used if no custom table is specified

Variables

var (
	ErrNilConfig      = errors.New("no config")
	ErrNoDatabaseName = errors.New("no database name")
	ErrNoSchema       = errors.New("no schema")
	ErrDatabaseDirty  = errors.New("database is dirty")
	ErrLockHeld       = errors.New("unable to obtain lock")
	ErrLockNotHeld    = errors.New("unable to release already released lock")
)

Driver errors

Functions

func WithInstance

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

WithInstance implements database.Driver

Types

type Config

type Config struct {
	MigrationsTable string
	DatabaseName    string
	// Whether to parse the migration DDL with spansql before
	// running them towards Spanner.
	// Parsing outputs clean DDL statements such as reformatted
	// and void of comments.
	CleanStatements bool
}

Config used for a Spanner instance

type DB

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

func NewDB

func NewDB(admin sdb.DatabaseAdminClient, data spanner.Client) *DB

type Spanner

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

Spanner implements database.Driver for Google Cloud Spanner

func (*Spanner) Close

func (s *Spanner) Close() error

Close implements database.Driver

func (*Spanner) Drop

func (s *Spanner) Drop() error

Drop implements database.Driver. Retrieves the database schema first and creates statements to drop the indexes and tables accordingly. Note: The drop statements are created in reverse order to how they're provided in the schema. Assuming the schema describes how the database can be "build up", it seems logical to "unbuild" the database simply by going the opposite direction. More testing

func (*Spanner) Lock

func (s *Spanner) Lock() error

Lock implements database.Driver but doesn't do anything because Spanner only enqueues the UpdateDatabaseDdlRequest.

func (*Spanner) Open

func (s *Spanner) Open(url string) (database.Driver, error)

Open implements database.Driver

func (*Spanner) Run

func (s *Spanner) Run(migration io.Reader) error

Run implements database.Driver

func (*Spanner) SetVersion

func (s *Spanner) SetVersion(version int, dirty bool) error

SetVersion implements database.Driver

func (*Spanner) Unlock

func (s *Spanner) Unlock() error

Unlock implements database.Driver but no action required, see Lock.

func (*Spanner) Version

func (s *Spanner) Version() (version int, dirty bool, err error)

Version implements database.Driver

Source Files

spanner.go

Version
v4.18.2 (latest)
Published
Jan 27, 2025
Platform
js/wasm
Imports
18 packages
Last checked
1 week ago

Tools for package owners.