Class: Erde::DatabaseTransformer

Inherits:
Object
  • Object
show all
Defined in:
lib/erde/cli.rb

Instance Method Summary collapse

Constructor Details

#initialize(url) ⇒ DatabaseTransformer

Returns a new instance of DatabaseTransformer.



61
62
63
# File 'lib/erde/cli.rb', line 61

def initialize(url)
  @url = url
end

Instance Method Details

#to_hashObject



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/erde/cli.rb', line 65

def to_hash
  generated_hash = {}

  Sequel.connect(@url) do |db|
    db.tables.each do |table|
      generated_hash[table] = {}
      generated_hash[table]['columns'] = []
      generated_hash[table]['relations'] = {}

      generated_hash[table]['columns'] = db.schema(table).map(&:first)

      db.foreign_key_list(table).each do |foreign_key|
        generated_hash[table]['relations'][foreign_key[:columns].first] = {
          'table' => foreign_key[:table],
          'column' => foreign_key[:key].first
        }
      end
    end
  end

  generated_hash
end