Sha256: 98787ed667993dc9249e382ca70f7e7e8f2680e924b849e7ebca2ac756d6c037

Contents?: true

Size: 1.21 KB

Versions: 4

Compression:

Stored size: 1.21 KB

Contents

require "database_cleaner/truncation_base"

module ActiveRecord
  module ConnectionAdapters

    class MysqlAdapter
      def truncate_table(table_name)
        execute("TRUNCATE TABLE #{quote_table_name(table_name)};")
      end
    end

    class SQLite3Adapter
      def truncate_table(table_name)
        execute("DELETE FROM #{quote_table_name(table_name)};")
      end
    end

    class JdbcAdapter
      def truncate_table(table_name)
        execute("TRUNCATE TABLE #{quote_table_name(table_name)};")
      end
    end

    class PostgreSQLAdapter
      def truncate_table(table_name)
        execute("TRUNCATE TABLE #{quote_table_name(table_name)};")
      end
    end

  end
end


module DatabaseCleaner::ActiveRecord
  class Truncation < ::DatabaseCleaner::TruncationBase

    def clean
      connection.disable_referential_integrity do
        tables_to_truncate.each do |table_name|
          connection.truncate_table table_name
        end
      end
    end

    private

    def tables_to_truncate
      (@only || connection.tables) - @tables_to_exclude
    end

    def connection
      ::ActiveRecord::Base.connection
    end

    # overwritten
    def migration_storage_name
      'schema_migrations'
    end

  end
end


Version data entries

4 entries across 4 versions & 2 rubygems

Version Path
HusseinMorsy-database_cleaner-0.2.2 lib/database_cleaner/active_record/truncation.rb
bmabey-database_cleaner-0.2.0 lib/database_cleaner/active_record/truncation.rb
bmabey-database_cleaner-0.2.1 lib/database_cleaner/active_record/truncation.rb
bmabey-database_cleaner-0.2.2 lib/database_cleaner/active_record/truncation.rb