Module: Spectacles::SchemaStatements::SQLite3Adapter
- Includes:
- AbstractAdapter
- Defined in:
- lib/spectacles/schema_statements/sqlite3_adapter.rb
Instance Method Summary collapse
- #generate_view_query(*columns) ⇒ Object
-
#tables(name = nil, table_name = nil) ⇒ Object
overrides the #tables method from ActiveRecord’s SQLite3Adapter to return only tables, and not views.
- #view_build_query(table_name) ⇒ Object
-
#views ⇒ 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
#generate_view_query(*columns) ⇒ Object
23 24 25 26 27 28 29 |
# File 'lib/spectacles/schema_statements/sqlite3_adapter.rb', line 23 def generate_view_query(*columns) sql = <<-SQL SELECT #{columns.join(',')} FROM sqlite_master WHERE type = 'view' SQL end |
#tables(name = nil, table_name = nil) ⇒ Object
overrides the #tables method from ActiveRecord’s SQLite3Adapter to return only tables, and not views.
10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/spectacles/schema_statements/sqlite3_adapter.rb', line 10 def tables(name = nil, table_name = nil) sql = <<-SQL SELECT name FROM sqlite_master WHERE type = 'table' AND NOT name = 'sqlite_sequence' SQL sql << " AND name = #{quote_table_name(table_name)}" if table_name exec_query(sql, 'SCHEMA').map do |row| row['name'] end end |
#view_build_query(table_name) ⇒ Object
39 40 41 42 43 44 45 |
# File 'lib/spectacles/schema_statements/sqlite3_adapter.rb', line 39 def view_build_query(table_name) sql = generate_view_query(:sql) sql << " AND name = #{quote_table_name(table_name)}" row = exec_query(sql, "SCHEMA").first row['sql'].gsub(/CREATE VIEW .*? AS/i, "") end |
#views ⇒ Object
:nodoc:
31 32 33 34 35 36 37 |
# File 'lib/spectacles/schema_statements/sqlite3_adapter.rb', line 31 def views #:nodoc: sql = generate_view_query(:name) exec_query(sql, "SCHEMA").map do |row| row['name'] end end |