Documentation ¶
Index ¶
- Constants
- Variables
- func WithInstance(instance *mongo.Client, config *Config) (database.Driver, error)
- type Config
- type Locking
- type Mongo
- func (m *Mongo) Close() error
- func (m *Mongo) Drop() error
- func (m *Mongo) GetClient() *mongo.Client
- func (m *Mongo) GetDatabase() *mongo.Database
- func (m *Mongo) Lock() error
- func (m *Mongo) Open(dsn string) (database.Driver, error)
- func (m *Mongo) Run(migration io.Reader) error
- func (m *Mongo) RunFunctionMigration(fn source.MigrationFunc) error
- func (m *Mongo) SetVersion(version int, dirty bool) error
- func (m *Mongo) Unlock() error
- func (m *Mongo) Version() (version int, dirty bool, err error)
Constants ¶
View Source
const ( DefaultLockingCollection = "migrate_advisory_lock" // the collection to use for advisory locking by default. DefaultLockTimeout = 15 // the default maximum time to wait for a lock to be released. DefaultLockTimeoutInterval = 10 // the default maximum intervals time for the locking timout. DefaultAdvisoryLockingFlag = true // the default value for the advisory locking feature flag. Default is true. LockIndexName = "lock_unique_key" // the name of the index which adds unique constraint to the locking_key field. )
Variables ¶
View Source
var ( ErrNoDatabaseName = fmt.Errorf("no database name") ErrNilConfig = fmt.Errorf("no config") ErrLockTimeoutConfigConflict = fmt.Errorf("both x-advisory-lock-timeout-interval and x-advisory-lock-timout-interval were specified") )
View Source
var DefaultMigrationsCollection = "schema_migrations"
Functions ¶
Types ¶
type Mongo ¶
type Mongo struct {
// contains filtered or unexported fields
}
func (*Mongo) GetDatabase ¶
func (*Mongo) Lock ¶
Utilizes advisory locking on the config.LockingCollection collection This uses a unique index on the `locking_key` field.
func (*Mongo) RunFunctionMigration ¶
func (m *Mongo) RunFunctionMigration(fn source.MigrationFunc) error
Click to show internal directories.
Click to hide internal directories.