const DefaultAdvisoryLockingFlag = true // the default value for the advisory locking feature flag. Default is true.
const DefaultLockTimeout = 15 // the default maximum time to wait for a lock to be released.
const DefaultLockTimeoutInterval = 10 // the default maximum intervals time for the locking timout.
const DefaultLockingCollection = "migrate_advisory_lock" // the collection to use for advisory locking by default.
const LockIndexName = "lock_unique_key" // the name of the index which adds unique constraint to the locking_key field.
var ( ErrNoDatabaseName = fmt.Errorf("no database name") ErrNilConfig = fmt.Errorf("no config") )
var DefaultMigrationsCollection = "schema_migrations"
func WithInstance(instance *mongo.Client, config *Config) (database.Driver, error)
type Config struct { DatabaseName string MigrationsCollection string TransactionMode bool Locking Locking }
type Locking struct { CollectionName string Timeout int Enabled bool Interval int }
type Mongo struct {
// contains filtered or unexported fields
}
func (m *Mongo) Close() error
func (m *Mongo) Drop() error
func (m *Mongo) Lock() error
Utilizes advisory locking on the config.LockingCollection collection This uses a unique index on the `locking_key` field.
func (m *Mongo) Open(dsn string) (database.Driver, error)
func (m *Mongo) Run(migration io.Reader) 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)