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
- adapter_name
- begin_db_transaction
- columns
- commit_db_transaction
- delete
- execute
- insert
- native_database_types
- quote_column_name
- quote_string
- rollback_db_transaction
- select_all
- select_one
- tables
- update
Public Instance methods
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 165
165: def adapter_name()
166: 'SQLite'
167: end
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 142
142: def begin_db_transaction() @connection.transaction end
[ show source ]
# 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
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 143
143: def commit_db_transaction() @connection.commit end
[ show source ]
# 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
[ show source ]
# 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
[ show source ]
# 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
[ show source ]
# 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
[ show source ]
# 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
[ show source ]
# 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
[ show source ]
# File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 144
144: def rollback_db_transaction() @connection.rollback end
[ show source ]
# 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
[ show source ]
# 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
[ show source ]
# 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
[ show source ]
# 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