Documentation ¶
Index ¶
- Constants
- Variables
- func WithInstance(instance *DB, config *Config) (database.Driver, error)
- type Config
- type DB
- type Spanner
- func (s *Spanner) Close() error
- func (s *Spanner) Drop() error
- func (s *Spanner) ListAppliedVersions() ([]int, error)
- func (s *Spanner) Lock() error
- func (s *Spanner) Open(url string) (database.Driver, error)
- func (s *Spanner) Run(migration io.Reader) error
- func (s *Spanner) SetSourceDriver(sourceDrv source.Driver) error
- func (s *Spanner) SetVersion(version int, dirty bool, forced bool, knownDirection *source.Direction) (*source.Direction, error)
- func (s *Spanner) Unlock() error
- func (s *Spanner) Version() (version int, dirty bool, err error)
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 ¶
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 Spanner ¶
type Spanner struct {
// contains filtered or unexported fields
}
Spanner implements database.Driver for Google Cloud Spanner
func (*Spanner) Drop ¶
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) ListAppliedVersions ¶
func (*Spanner) Lock ¶
Lock implements database.Driver but doesn't do anything because Spanner only enqueues the UpdateDatabaseDdlRequest.
func (*Spanner) SetSourceDriver ¶
This database driver does not currently support file sourcing.
func (*Spanner) SetVersion ¶
func (s *Spanner) SetVersion(version int, dirty bool, forced bool, knownDirection *source.Direction) (*source.Direction, error)
SetVersion implements database.Driver