Guest User

Untitled

a guest
Mar 7th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.03 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2. require 'optparse'
  3. require "rubygems"
  4. require "activerecord"
  5.  
  6. host = 'localhost'
  7. password = ''
  8. username = db = nil
  9. help = ''
  10.  
  11. OptionParser.new do |opt|
  12. opt.version = '0.0.1'
  13. opt.on('-h [HOST]') {|v| host = v}
  14. opt.on('-u USERNAME') {|v| username = v}
  15. opt.on('-p [PASSWORD]') {|v| password = v}
  16. opt.on('-d DB') {|v| db = v}
  17. opt.permute!(ARGV)
  18. help = opt.help
  19. end
  20.  
  21. unless username && db
  22. puts help
  23. exit!
  24. end
  25.  
  26. ActiveRecord::Base.establish_connection(
  27. :adapter => 'mysql',
  28. :host => host,
  29. :username => username,
  30. :password => password,
  31. :database => db
  32. )
  33. connection = ActiveRecord::Base.connection
  34. tables = connection.tables
  35.  
  36. # columns = tables.inject({}) do |result, table|
  37. # result[table] = connection.columns(table)
  38. # result
  39. # end
  40.  
  41. File.open("table_columns.txt", "w") do |f|
  42. tables.inject({}) do |result, table|
  43. f.puts table
  44. f.puts '=' * 50
  45. connection.execute("SHOW FIELDS FROM #{table}").each do |field|
  46. f.puts "● #{field[0]} : #{field[1]}"
  47. end
  48. f.puts '-' * 50;
  49. f.puts
  50. end
  51. end
Add Comment
Please, Sign In to add comment