Module: SchemaPlus::ActiveRecord::ConnectionAdapters::Sqlite3Adapter
- Defined in:
- lib/schema_plus/active_record/connection_adapters/sqlite3_adapter.rb
Overview
SchemaPlus includes an Sqlite3 implementation of the AbstractAdapater extensions.
Instance Method Summary collapse
-
#add_foreign_key(table_name, column_names, references_table_name, references_column_names, options = {}) ⇒ Object
:enddoc:.
- #foreign_keys(table_name, name = nil) ⇒ Object
- #remove_foreign_key(table_name, foreign_key_name) ⇒ Object
- #reverse_foreign_keys(table_name, name = nil) ⇒ Object
- #view_definition(view_name, name = nil) ⇒ Object
- #views(name = nil) ⇒ Object
Instance Method Details
#add_foreign_key(table_name, column_names, references_table_name, references_column_names, options = {}) ⇒ Object
:enddoc:
10 11 12 |
# File 'lib/schema_plus/active_record/connection_adapters/sqlite3_adapter.rb', line 10 def add_foreign_key(table_name, column_names, references_table_name, references_column_names, = {}) raise NotImplementedError, "Sqlite3 does not support altering a table to add foreign key constraints (table #{table_name.inspect} column #{column_names.inspect})" end |
#foreign_keys(table_name, name = nil) ⇒ Object
18 19 20 |
# File 'lib/schema_plus/active_record/connection_adapters/sqlite3_adapter.rb', line 18 def foreign_keys(table_name, name = nil) get_foreign_keys(table_name, name) end |
#remove_foreign_key(table_name, foreign_key_name) ⇒ Object
14 15 16 |
# File 'lib/schema_plus/active_record/connection_adapters/sqlite3_adapter.rb', line 14 def remove_foreign_key(table_name, foreign_key_name) raise NotImplementedError, "Sqlite3 does not support altering a table to remove foreign key constraints (table #{table_name.inspect} constraint #{foreign_key_name.inspect})" end |
#reverse_foreign_keys(table_name, name = nil) ⇒ Object
22 23 24 |
# File 'lib/schema_plus/active_record/connection_adapters/sqlite3_adapter.rb', line 22 def reverse_foreign_keys(table_name, name = nil) get_foreign_keys(nil, name).select{|definition| definition.references_table_name == table_name} end |
#view_definition(view_name, name = nil) ⇒ Object
30 31 32 33 |
# File 'lib/schema_plus/active_record/connection_adapters/sqlite3_adapter.rb', line 30 def view_definition(view_name, name = nil) sql = execute("SELECT sql FROM sqlite_master WHERE type='view' AND name=#{quote(view_name)}", name).collect{|row| row["sql"]}.first sql.sub(/^CREATE VIEW \S* AS\s+/im, '') unless sql.nil? end |
#views(name = nil) ⇒ Object
26 27 28 |
# File 'lib/schema_plus/active_record/connection_adapters/sqlite3_adapter.rb', line 26 def views(name = nil) execute("SELECT name FROM sqlite_master WHERE type='view'", name).collect{|row| row["name"]} end |