DefaultMigrationsTable is used if no custom table is specified
const DefaultMigrationsTable = "SchemaMigrations"
Driver errors
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") )
func WithInstance(instance *DB, config *Config) (database.Driver, error)
WithInstance implements database.Driver
Config used for a Spanner instance
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 }
type DB struct {
// contains filtered or unexported fields
}
func NewDB(admin sdb.DatabaseAdminClient, data spanner.Client) *DB
Spanner implements database.Driver for Google Cloud Spanner
type Spanner struct {
// contains filtered or unexported fields
}
func (s *Spanner) Close() error
Close implements database.Driver
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 (s *Spanner) Lock() error
Lock implements database.Driver but doesn't do anything because Spanner only enqueues the UpdateDatabaseDdlRequest.
func (s *Spanner) Open(url string) (database.Driver, error)
Open implements database.Driver
func (s *Spanner) Run(migration io.Reader) error
Run implements database.Driver
func (s *Spanner) SetVersion(version int, dirty bool) error
SetVersion implements database.Driver
func (s *Spanner) Unlock() error
Unlock implements database.Driver but no action required, see Lock.
func (s *Spanner) Version() (version int, dirty bool, err error)
Version implements database.Driver