Sha256: d7502bc1e7236e6cb48d8d1da1be5aa7cce0c96ab847f4a4b44aebe8a0149d46

Contents?: true

Size: 885 Bytes

Versions: 14

Compression:

Stored size: 885 Bytes

Contents

module AbAdmin
  module Utils
    module Mysql
      def self.included(base)
        base.extend(ClassMethods)
      end

      module ClassMethods
        # Deletes all rows in table very fast, but without calling +destroy+ method
        # nor any hooks.
        def truncate!
          transaction { connection.execute("TRUNCATE TABLE #{quoted_table_name};") }
        end

        # Disables key updates for model table
        def disable_keys
          connection.execute("ALTER TABLE #{quoted_table_name} DISABLE KEYS")
        end

        # Enables key updates for model table
        def enable_keys
          connection.execute("ALTER TABLE #{quoted_table_name} ENABLE KEYS")
        end

        # Disables keys, yields block, enables keys.
        def with_keys_disabled
          disable_keys
          yield
          enable_keys
        end
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
ab_admin-0.3.6 lib/ab_admin/utils/mysql.rb
ab_admin-0.3.5 lib/ab_admin/utils/mysql.rb
ab_admin-0.3.4 lib/ab_admin/utils/mysql.rb
ab_admin-0.3.3 lib/ab_admin/utils/mysql.rb
ab_admin-0.3.2 lib/ab_admin/utils/mysql.rb
ab_admin-0.3.1 lib/ab_admin/utils/mysql.rb
ab_admin-0.3.0 lib/ab_admin/utils/mysql.rb
ab_admin-0.2.3 lib/ab_admin/utils/mysql.rb
ab_admin-0.2.2 lib/ab_admin/utils/mysql.rb
ab_admin-0.2.1 lib/ab_admin/utils/mysql.rb
ab_admin-0.2.0 lib/ab_admin/utils/mysql.rb
ab_admin-0.1.2 lib/ab_admin/utils/mysql.rb
ab_admin-0.1.1 lib/ab_admin/utils/mysql.rb
ab_admin-0.1.0 lib/ab_admin/utils/mysql.rb