Skip to content

Instantly share code, notes, and snippets.

@satetsu888
Created September 30, 2019 07:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save satetsu888/068a641056d32e2c08bc823747d602fd to your computer and use it in GitHub Desktop.
Save satetsu888/068a641056d32e2c08bc823747d602fd to your computer and use it in GitHub Desktop.
list up rails mode unique validations and table unique indexes
require 'json'
results = {}
ActiveRecord::Base.connection.tables.each do |table_name|
klass = table_name.classify.safe_constantize
next unless klass
results[table_name] = {}
klass.validators.each do |validator|
next unless validator.class == ActiveRecord::Validations::UniquenessValidator
results[table_name][:validators] ||= []
results[table_name][:validators].push("#{validator.attributes}, #{validator.options}")
end
ActiveRecord::Base.connection.indexes(table_name).each do |index|
next unless index.unique
results[table_name][:indexes] ||= []
results[table_name][:indexes].push(index.columns.to_s)
end
end
p JSON.generate(results)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment