Class: MysqlInspector::AR::Access

Inherits:
Object
  • Object
show all
Defined in:
lib/mysql_inspector/ar/access.rb

Instance Method Summary collapse

Constructor Details

#initialize(connection) ⇒ Access

Returns a new instance of Access.



5
6
7
# File 'lib/mysql_inspector/ar/access.rb', line 5

def initialize(connection)
  @connection = connection
end

Instance Method Details

#drop_all_tablesObject



21
22
23
24
25
26
# File 'lib/mysql_inspector/ar/access.rb', line 21

def drop_all_tables
  @connection.disable_referential_integrity do
    names = table_names
    @connection.execute("DROP TABLE #{names.join(',')}") if names.any?
  end
end

#load(schema) ⇒ Object



28
29
30
31
32
33
34
# File 'lib/mysql_inspector/ar/access.rb', line 28

def load(schema)
  @connection.disable_referential_integrity do
    schema.split(";").each { |table|
      @connection.execute(table)
    }
  end
end

#read_migrations(table_name) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/mysql_inspector/ar/access.rb', line 36

def read_migrations(table_name)
  if table_names.include?(table_name)
    @connection.select_values("SELECT * FROM #{table_name}")
  else
    []
  end
end

#table_namesObject



9
10
11
# File 'lib/mysql_inspector/ar/access.rb', line 9

def table_names
  tables.map { |t| t.table_name }
end

#tablesObject



13
14
15
16
17
18
19
# File 'lib/mysql_inspector/ar/access.rb', line 13

def tables
  dump = @connection.structure_dump
  tables = dump.split(";").map { |schema|
    table = MysqlInspector::Table.new(schema)
    table if table.table_name
  }.compact
end

#write_migrations(table_name, col, values) ⇒ Object



44
45
46
47
48
49
# File 'lib/mysql_inspector/ar/access.rb', line 44

def write_migrations(table_name, col, values)
  if table_names.include?(table_name)
    values = values.map { |value| "('#{value}')" }
    @connection.execute("INSERT INTO #{table_name} (#{col}) VALUES #{values * ','}")
  end
end