Skip to content

Instantly share code, notes, and snippets.

@jaygooby
Forked from thetamind/example output
Last active August 29, 2015 14:07
Show Gist options
  • Save jaygooby/cbf48d2701a33c0ff82c to your computer and use it in GitHub Desktop.
Save jaygooby/cbf48d2701a33c0ff82c 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}, :name => 'idx_#{col}') unless index_exists?(:#{table}, :#{col}, 'idx_#{col}')"
end
end
missing.each do |table, columns|
columns.each do |col|
puts " remove_index :#{table}, :#{col}"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment