Module: Spectacles::SchemaStatements::MysqlAdapter
- Includes:
- AbstractAdapter
- Included in:
- Mysql2Adapter
- Defined in:
- lib/spectacles/schema_statements/mysql_adapter.rb
Instance Method Summary collapse
-
#tables(name = nil, database = nil, like = nil) ⇒ Object
overrides the #tables method from ActiveRecord’s MysqlAdapter to return only tables, and not views.
- #view_build_query(view, name = nil) ⇒ Object
-
#views(name = nil) ⇒ Object
:nodoc:.
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, #supports_materialized_views?, #view_exists?
Instance Method Details
#tables(name = nil, database = nil, like = nil) ⇒ Object
overrides the #tables method from ActiveRecord’s MysqlAdapter to return only tables, and not views.
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/spectacles/schema_statements/mysql_adapter.rb', line 10 def tables(name = nil, database = nil, like = nil) database = database ? quote_table_name(database) : "DATABASE()" by_name = like ? "AND table_name LIKE #{quote(like)}" : "" sql = " SELECT table_name, table_type\n FROM information_schema.tables\n WHERE table_schema = \#{database}\n AND table_type = 'BASE TABLE'\n \#{by_name}\n SQL\n\n execute_and_free(sql, 'SCHEMA') do |result|\n result.collect(&:first)\n end\nend\n".squish |
#view_build_query(view, name = nil) ⇒ Object
31 32 33 34 35 36 |
# File 'lib/spectacles/schema_statements/mysql_adapter.rb', line 31 def view_build_query(view, name = nil) row = execute("SHOW CREATE VIEW #{view}", name).first return row[1].gsub(/CREATE .*? (AS)+/i, "") rescue ActiveRecord::StatementInvalid => e raise "No view called #{view} found" end |
#views(name = nil) ⇒ Object
:nodoc:
27 28 29 |
# File 'lib/spectacles/schema_statements/mysql_adapter.rb', line 27 def views(name = nil) #:nodoc: execute("SHOW FULL TABLES WHERE TABLE_TYPE='VIEW'").map { |row| row[0] } end |