Module: StrongMigrations::Migrator
- Defined in:
- lib/strong_migrations/migrator.rb
Instance Method Summary collapse
Instance Method Details
#ddl_transaction(migration) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/strong_migrations/migrator.rb', line 3 def ddl_transaction(migration, ...) return super unless StrongMigrations.lock_timeout_retries > 0 && use_transaction?(migration) # handle MigrationProxy class migration = migration.send(:migration) if migration.respond_to?(:migration, true) checker = migration.send(:strong_migrations_checker) return super if checker.skip? # retry migration since the entire transaction needs to be rerun checker.retry_lock_timeouts(check_committed: true) do # failed transaction reverts timeout, so need to re-apply checker.reset super(migration, ...) end end |