Module: Spectacles::SchemaStatements::Mysql2Adapter

Includes:
AbstractAdapter
Defined in:
lib/spectacles/schema_statements/mysql2_adapter.rb

Instance Method Summary collapse

Methods included from AbstractAdapter

#create_materialized_view, #create_view, #create_view_statement, #drop_materialized_view, #drop_view, #drop_view_statement, #materialized_view_build_query, #materialized_view_exists?, #materialized_views, #refresh_materialized_view, #refresh_materialized_view_concurrently, #supports_materialized_views?, #view_exists?

Instance Method Details

#view_build_query(view, name = nil) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/spectacles/schema_statements/mysql2_adapter.rb', line 11

def view_build_query(view, name = nil)
  result = execute("SHOW CREATE VIEW #{view}", name)
  algorithm_string = values_from(result).first[1]

  algorithm_string.gsub(/CREATE .*? (AS)+/i, "")
rescue ActiveRecord::StatementInvalid => e
  raise "No view called #{view} found, #{e}"
end

#views(name = nil) ⇒ Object

:nodoc:



6
7
8
9
# File 'lib/spectacles/schema_statements/mysql2_adapter.rb', line 6

def views(name = nil) # :nodoc:
  result = execute("SHOW FULL TABLES WHERE TABLE_TYPE='VIEW'")
  values_from(result).map(&:first)
end