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.
Methods
Public Instance methods
adapter_name()
     # File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 165
165:       def adapter_name()
166:         'SQLite'
167:       end
begin_db_transaction()
     # File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 142
142:       def begin_db_transaction()    @connection.transaction end
columns(table_name, name = nil)
     # File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 151
151:       def columns(table_name, name = nil)
152:         table_structure(table_name).map { |field|
153:           SQLiteColumn.new(field['name'], field['dflt_value'], field['type'])
154:         }
155:       end
commit_db_transaction()
     # File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 143
143:       def commit_db_transaction()   @connection.commit      end
delete(sql, name = nil)
     # File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 115
115:       def delete(sql, name = nil)
116:         sql += " WHERE 1=1" unless sql =~ /WHERE/i
117:         execute(sql, name)
118:         @connection.changes
119:       end
execute(sql, name = nil)
     # File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 106
106:       def execute(sql, name = nil)
107:         log(sql, name) { @connection.execute(sql) }
108:       end
insert(sql, name = nil, pk = nil, id_value = nil)
     # File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 121
121:       def insert(sql, name = nil, pk = nil, id_value = nil)
122:         execute(sql, name = nil)
123:         id_value || @connection.last_insert_row_id
124:       end
native_database_types()
     # File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 90
 90:       def native_database_types
 91:         {
 92:           :primary_key => "INTEGER PRIMARY KEY NOT NULL",
 93:           :string      => "VARCHAR(255)",
 94:           :text        => "TEXT",
 95:           :integer     => "INTEGER",
 96:           :float       => "float",
 97:           :datetime    => "DATETIME",
 98:           :timestamp   => "DATETIME",
 99:           :time        => "DATETIME",
100:           :date        => "DATE",
101:           :binary      => "BLOB",
102:           :boolean     => "INTEGER"
103:         }
104:       end
quote_column_name(name)
     # File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 161
161:       def quote_column_name(name)
162:         return "'#{name}'"
163:       end
quote_string(s)
     # File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 157
157:       def quote_string(s)
158:         @connection.class.quote(s)
159:       end
rollback_db_transaction()
     # File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 144
144:       def rollback_db_transaction() @connection.rollback    end
select_all(sql, name = nil)
     # File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 126
126:       def select_all(sql, name = nil)
127:         execute(sql, name).map do |row|
128:           record = {}
129:           row.each_key do |key|
130:             record[key.sub(/\w+\./, '')] = row[key] unless key.is_a?(Fixnum)
131:           end
132:           record
133:         end
134:       end
select_one(sql, name = nil)
     # File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 136
136:       def select_one(sql, name = nil)
137:         result = select_all(sql, name)
138:         result.nil? ? nil : result.first
139:       end
tables()
     # File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 147
147:       def tables
148:         execute('.table').map { |table| Table.new(table) }
149:       end
update(sql, name = nil)
     # File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 110
110:       def update(sql, name = nil)
111:         execute(sql, name)
112:         @connection.changes
113:       end