Module: Gitlab::Database::Migrations::LockRetryMixin::ActiveRecordMigratorLockRetries

Defined in:
lib/gitlab/database/migrations/lock_retry_mixin.rb

Instance Method Summary collapse

Instance Method Details

#ddl_transaction(migration, &block) ⇒ Object

We patch the original method to start a transaction using the WithLockRetries methodology for the whole migration.



28
29
30
31
32
33
34
35
36
37
38
# File 'lib/gitlab/database/migrations/lock_retry_mixin.rb', line 28

def ddl_transaction(migration, &block)
  if use_transaction?(migration) && migration.enable_lock_retries?
    Gitlab::Database::WithLockRetries.new(
      connection: migration.migration_connection,
      klass: migration.migration_class,
      logger: Gitlab::BackgroundMigration::Logger
    ).run(raise_on_exhaustion: false, &block)
  else
    super
  end
end