module DatabaseCleaner::ActiveRecord::SelectiveTruncation
Public Instance Methods
information_schema_exists?(connection)
click to toggle source
# File lib/database_cleaner/active_record/deletion.rb, line 61 def information_schema_exists? connection @information_schema_exists ||= begin connection.execute("SELECT 1 FROM information_schema.tables") true rescue false end end
tables_to_truncate(connection)
click to toggle source
Calls superclass method
# File lib/database_cleaner/active_record/deletion.rb, line 47 def tables_to_truncate(connection) if information_schema_exists?(connection) (@only || tables_with_new_rows(connection)) - @tables_to_exclude else super end end
tables_with_new_rows(connection)
click to toggle source
# File lib/database_cleaner/active_record/deletion.rb, line 55 def tables_with_new_rows(connection) @db_name ||= connection.instance_variable_get('@config')[:database] result = connection.exec_query("SELECT table_name FROM information_schema.tables WHERE table_schema = '#{@db_name}' AND table_rows > 0") result.map{ |row| row['table_name'] } - ['schema_migrations'] end