Skip to content

Instantly share code, notes, and snippets.

@5minpause
Forked from thetamind/example output
Created November 16, 2016 09:53
Show Gist options
  • Save 5minpause/46bbd7a9da2feb943ced91e75279e785 to your computer and use it in GitHub Desktop.
Save 5minpause/46bbd7a9da2feb943ced91e75279e785 to your computer and use it in GitHub Desktop.
add_index :attachments, :parent_id
add_index :attachments, :asset_id
add_index :domain_names, :user_id
add_index :domain_names, :event_id
add_index :event_memberships, :user_id
add_index :event_memberships, :event_id
remove_index :attachments, :parent_id
remove_index :attachments, :asset_id
remove_index:domain_names, :user_id
remove_index:domain_names, :event_id
remove_index:event_memberships, :user_id
remove_index:event_memberships, :event_id
missing = {}
c = ActiveRecord::Base.connection
c.tables.collect do |t|
columns = c.columns(t).collect(&:name).select { |x| x.ends_with? ("_id" || x.ends_with("_type")) }
indexed_columns = c.indexes(t).collect(&:columns).flatten.uniq
unindexed = columns - indexed_columns
missing[t] = unindexed unless unindexed.empty?
end
missing.each do |table, columns|
columns.each do |col|
puts " add_index :#{table}, :#{col}"
end
end
missing.each do |table, columns|
columns.each do |col|
puts " remove_index :#{table}, :#{col}"
end
end
@5minpause
Copy link
Author

The original article linked at the top does not seem to be online anymore.
This gist ist for finding missing indixes for your rails db tables. It also lists the contents of a possible migration for adding them.

@donni106
Copy link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment