Class: Utf8mb4rails::Migrator::DBInspector

Inherits:
Object
  • Object
show all
Defined in:
lib/utf8mb4rails/migrator/db_inspector.rb

Instance Method Summary collapse

Constructor Details

#initializeDBInspector

Initializes AR



5
6
7
8
9
# File 'lib/utf8mb4rails/migrator/db_inspector.rb', line 5

def initialize
  ActiveRecord::Base.establish_connection(
    ActiveRecord::Base.connection_config.merge(adapter: 'percona')
  )
end

Instance Method Details

#column_info(table, column) ⇒ Object

Returns a hash with information about the column

Parameters:

  • table (String)
  • column (String)


23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/utf8mb4rails/migrator/db_inspector.rb', line 23

def column_info(table, column)
  sql = "SELECT DATA_TYPE, COLUMN_DEFAULT, CHARACTER_SET_NAME, CHARACTER_MAXIMUM_LENGTH
  FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = '#{table}'
  AND COLUMN_NAME = '#{column}'
  AND TABLE_SCHEMA='#{database_name}'"
  result = ActiveRecord::Base.connection.execute(sql).first
  ColumnInfo.new(
    type: result[0].upcase,
    default: result[1],
    charset: result[2],
    max_length: result[3]
  )
end

#columns(table) ⇒ Object



13
14
15
# File 'lib/utf8mb4rails/migrator/db_inspector.rb', line 13

def columns(table)
  ActiveRecord::Base.connection.columns(table).map(&:name)
end