Class: Utf8mb4rails::Migrator::DBInspector
- Inherits:
-
Object
- Object
- Utf8mb4rails::Migrator::DBInspector
- Defined in:
- lib/utf8mb4rails/migrator/db_inspector.rb
Instance Method Summary collapse
-
#column_info(table, column) ⇒ Object
Returns a hash with information about the column.
- #columns(table) ⇒ Object
-
#initialize ⇒ DBInspector
constructor
Initializes AR.
Constructor Details
#initialize ⇒ DBInspector
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
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 |