Sha256: 9658634ea8a330a37b2b5f87b2e6d3fe4ded91bd5548ce6c7e07731b3d74cda7

Contents?: true

Size: 1 KB

Versions: 8

Compression:

Stored size: 1 KB

Contents

# frozen_string_literal: true

module MigrationDSLExtension
  def transaction_options(opts)
    migration.transaction_opts = opts
  end
end

module SimpleMigrationExtension
  attr_accessor :transaction_opts
end

module MigratorExtension
  def checked_transaction(migration, &block)
    if _use_transaction?(migration)
      _transaction(migration, &block)
    else
      yield
    end
  end

  private

  def _use_transaction?(migration)
    # NOTE: original code
    if @use_transactions.nil?
      if migration.use_transactions.nil?
        @db.supports_transactional_ddl?
      else
        migration.use_transactions
      end
    else
      @use_transactions
    end
  end

  def _transaction(migration, &block)
    if migration.transaction_opts.nil?
      db.transaction(&block)
    else
      db.transaction(migration.transaction_opts, &block)
    end
  end
end

Sequel::MigrationDSL.include(MigrationDSLExtension)
Sequel::SimpleMigration.include(SimpleMigrationExtension)
Sequel::Migrator.prepend(MigratorExtension)

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
umbrellio-sequel-plugins-0.10.0.101 lib/sequel/extensions/migration_transaction_options.rb
umbrellio-sequel-plugins-0.10.0.100 lib/sequel/extensions/migration_transaction_options.rb
umbrellio-sequel-plugins-0.10.0.86 lib/sequel/extensions/migration_transaction_options.rb
umbrellio-sequel-plugins-0.9.0.79 lib/sequel/extensions/migration_transaction_options.rb
umbrellio-sequel-plugins-0.9.0.76 lib/sequel/extensions/migration_transaction_options.rb
umbrellio-sequel-plugins-0.8.0.73 lib/sequel/extensions/migration_transaction_options.rb
umbrellio-sequel-plugins-0.7.0.52 lib/sequel/extensions/migration_transaction_options.rb
umbrellio-sequel-plugins-0.6.0.46 lib/sequel/extensions/migration_transaction_options.rb