Class: ActiveRecord::ConnectionAdapters::SQLiteAdapter
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:
Instance Method Summary
collapse
#add_column, #add_limit!, #add_limit_with_offset!, #add_limit_without_offset!, #create_table, #drop_table, #initialize, #initialize_schema_information, #quote, #remove_column, #reset_runtime, #structure_dump, #transaction
Instance Method Details
#adapter_name ⇒ Object
165
166
167
|
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 165
def adapter_name()
'SQLite'
end
|
#begin_db_transaction ⇒ Object
142
|
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 142
def begin_db_transaction() @connection.transaction end
|
#columns(table_name, name = nil) ⇒ Object
151
152
153
154
155
|
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 151
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
143
|
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 143
def commit_db_transaction() @connection.commit end
|
#delete(sql, name = nil) ⇒ Object
115
116
117
118
119
|
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 115
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
|
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 106
def execute(sql, name = nil)
log(sql, name) { @connection.execute(sql) }
end
|
#insert(sql, name = nil, pk = nil, id_value = nil) ⇒ Object
121
122
123
124
|
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 121
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 => "VARCHAR(255)",
:text => "TEXT",
:integer => "INTEGER",
:float => "float",
:datetime => "DATETIME",
:timestamp => "DATETIME",
:time => "DATETIME",
:date => "DATE",
:binary => "BLOB",
:boolean => "INTEGER"
}
end
|
#quote_column_name(name) ⇒ Object
161
162
163
|
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 161
def quote_column_name(name)
return "'#{name}'"
end
|
#quote_string(s) ⇒ Object
157
158
159
|
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 157
def quote_string(s)
@connection.class.quote(s)
end
|
#rollback_db_transaction ⇒ Object
144
|
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 144
def rollback_db_transaction() @connection.rollback end
|
#select_all(sql, name = nil) ⇒ Object
126
127
128
129
130
131
132
133
134
|
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 126
def select_all(sql, name = nil)
execute(sql, name).map do |row|
record = {}
row.each_key do |key|
record[key.sub(/\w+\./, '')] = row[key] unless key.is_a?(Fixnum)
end
record
end
end
|
#select_one(sql, name = nil) ⇒ Object
136
137
138
139
|
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 136
def select_one(sql, name = nil)
result = select_all(sql, name)
result.nil? ? nil : result.first
end
|
#tables ⇒ Object
147
148
149
|
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 147
def tables
execute('.table').map { |table| Table.new(table) }
end
|
#update(sql, name = nil) ⇒ Object
110
111
112
113
|
# File 'lib/active_record/connection_adapters/sqlite_adapter.rb', line 110
def update(sql, name = nil)
execute(sql, name)
@connection.changes
end
|