Class: ActiveRecord::ConnectionAdapters::SQLiteAdapter
- Inherits:
-
AbstractAdapter
- Object
- AbstractAdapter
- ActiveRecord::ConnectionAdapters::SQLiteAdapter
- Defined in:
- lib/active_record/connection_adapters/sqlite_adapter.rb
Overview
The SQLite adapter works with both the 2.x and 3.x series of SQLite with the sqlite-ruby drivers (available both as gems and from rubyforge.org/projects/sqlite-ruby/).
Options:
-
:dbfile
– Path to the database file.
Direct Known Subclasses
Instance Method Summary collapse
- #adapter_name ⇒ Object
- #begin_db_transaction ⇒ Object
- #columns(table_name, name = nil) ⇒ Object
- #commit_db_transaction ⇒ Object
- #delete(sql, name = nil) ⇒ Object
- #execute(sql, name = nil) ⇒ Object
- #insert(sql, name = nil, pk = nil, id_value = nil) ⇒ Object
- #native_database_types ⇒ Object
- #quote_column_name(name) ⇒ Object
- #quote_string(s) ⇒ Object
- #rollback_db_transaction ⇒ Object
- #select_all(sql, name = nil) ⇒ Object
- #select_one(sql, name = nil) ⇒ Object
- #tables ⇒ Object
- #update(sql, name = nil) ⇒ Object
Methods inherited from AbstractAdapter
Instance Method Details
#adapter_name ⇒ Object
168 169 170 |
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 168 def adapter_name() 'SQLite' end |
#begin_db_transaction ⇒ Object
145 |
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 145 def begin_db_transaction() @connection.transaction end |
#columns(table_name, name = nil) ⇒ Object
154 155 156 157 158 |
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 154 def columns(table_name, name = nil) table_structure(table_name).map { |field| SQLiteColumn.new(field['name'], field['dflt_value'], field['type']) } end |
#commit_db_transaction ⇒ Object
146 |
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 146 def commit_db_transaction() @connection.commit end |
#delete(sql, name = nil) ⇒ Object
116 117 118 119 120 |
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 116 def delete(sql, name = nil) sql += " WHERE 1=1" unless sql =~ /WHERE/i execute(sql, name) @connection.changes end |
#execute(sql, name = nil) ⇒ Object
106 107 108 109 |
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 106 def execute(sql, name = nil) #log(sql, name, @connection) { |connection| connection.execute(sql) } log(sql, name) { @connection.execute(sql) } end |
#insert(sql, name = nil, pk = nil, id_value = nil) ⇒ Object
122 123 124 125 |
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 122 def insert(sql, name = nil, pk = nil, id_value = nil) execute(sql, name = nil) id_value || @connection.last_insert_row_id end |
#native_database_types ⇒ Object
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 90 def native_database_types { :primary_key => "INTEGER PRIMARY KEY NOT NULL", :string => { :name => "varchar", :limit => 255 }, :text => { :name => "text" }, :integer => { :name => "integer" }, :float => { :name => "float" }, :datetime => { :name => "datetime" }, :timestamp => { :name => "datetime" }, :time => { :name => "datetime" }, :date => { :name => "date" }, :binary => { :name => "blob" }, :boolean => { :name => "integer" } } end |
#quote_column_name(name) ⇒ Object
164 165 166 |
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 164 def quote_column_name(name) "'#{name}'" end |
#quote_string(s) ⇒ Object
160 161 162 |
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 160 def quote_string(s) @connection.class.quote(s) end |
#rollback_db_transaction ⇒ Object
147 |
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 147 def rollback_db_transaction() @connection.rollback end |
#select_all(sql, name = nil) ⇒ Object
127 128 129 130 131 132 133 134 135 136 137 |
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 127 def select_all(sql, name = nil) execute(sql, name).map do |row| record = {} row.each_key do |key| if key.is_a?(String) record[key.sub(/^\w+\./, '')] = row[key] end end record end end |
#select_one(sql, name = nil) ⇒ Object
139 140 141 142 |
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 139 def select_one(sql, name = nil) result = select_all(sql, name) result.nil? ? nil : result.first end |
#tables ⇒ Object
150 151 152 |
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 150 def tables execute('.table').map { |table| Table.new(table) } end |
#update(sql, name = nil) ⇒ Object
111 112 113 114 |
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 111 def update(sql, name = nil) execute(sql, name) @connection.changes end |