Class: Utf8mb4rails::Migrator::DBInspector
- Inherits:
-
Object
- Object
- Utf8mb4rails::Migrator::DBInspector
- Defined in:
- lib/utf8mb4rails/migrator/db_inspector.rb
Overview
DB introspection (only for columns)
Instance Method Summary collapse
-
#column_info(table, column) ⇒ Object
Returns a hash with information about the column.
-
#columns(table) ⇒ Object
:reek:UtilityFunction.
-
#initialize ⇒ DBInspector
constructor
Initializes AR :reek:UtilityFunction.
Constructor Details
#initialize ⇒ DBInspector
Initializes AR :reek:UtilityFunction
7 8 9 10 11 |
# File 'lib/utf8mb4rails/migrator/db_inspector.rb', line 7 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
:reek:FeatureEnvy
27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/utf8mb4rails/migrator/db_inspector.rb', line 27 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
:reek:UtilityFunction
16 17 18 |
# File 'lib/utf8mb4rails/migrator/db_inspector.rb', line 16 def columns(table) ActiveRecord::Base.connection.columns(table).map(&:name) end |