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:
:database - Path to the database file.
# File lib/active_record/connection_adapters/sqlite_adapter.rb, line 250 250: def change_column_null(table_name, column_name, null, default = nil) 251: unless null || default.nil? 252: execute("UPDATE #{quote_table_name(table_name)} SET #{quote_column_name(column_name)}=#{quote(default)} WHERE #{quote_column_name(column_name)} IS NULL") 253: end 254: alter_table(table_name) do |definition| 255: definition[column_name].null = null 256: end 257: end
# File lib/active_record/connection_adapters/sqlite_adapter.rb, line 80 80: def disconnect! 81: super 82: @connection.close rescue nil 83: end
# File lib/active_record/connection_adapters/sqlite_adapter.rb, line 278 278: def empty_insert_statement_value 279: "VALUES(NULL)" 280: end
# File lib/active_record/connection_adapters/sqlite_adapter.rb, line 214 214: def rename_table(name, new_name) 215: execute "ALTER TABLE #{quote_table_name(name)} RENAME TO #{quote_table_name(new_name)}" 216: end
# File lib/active_record/connection_adapters/sqlite_adapter.rb, line 72 72: def requires_reloading? 73: true 74: end
# File lib/active_record/connection_adapters/sqlite_adapter.rb, line 153 153: def select_rows(sql, name = nil) 154: execute(sql, name).map do |row| 155: (0...(row.size / 2)).map { |i| row[i] } 156: end 157: end
# File lib/active_record/connection_adapters/sqlite_adapter.rb, line 76 76: def supports_add_column? 77: sqlite_version >= '3.1.6' 78: end
# File lib/active_record/connection_adapters/sqlite_adapter.rb, line 60 60: def supports_ddl_transactions? 61: sqlite_version >= '2.0.0' 62: end
See: www.sqlite.org/lang_altertable.html SQLite has an additional restriction on the ALTER TABLE statement
# File lib/active_record/connection_adapters/sqlite_adapter.rb, line 220 220: def valid_alter_table_options( type, options) 221: type.to_sym != :primary_key 222: end
# File lib/active_record/connection_adapters/sqlite_adapter.rb, line 382 382: def default_primary_key_type 383: if supports_autoincrement? 384: 'INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL' 385: else 386: 'INTEGER PRIMARY KEY NOT NULL' 387: end 388: end
# File lib/active_record/connection_adapters/sqlite_adapter.rb, line 378 378: def sqlite_version 379: @sqlite_version ||= SQLiteAdapter::Version.new(select_value('select sqlite_version(*)')) 380: end
# File lib/active_record/connection_adapters/sqlite_adapter.rb, line 293 293: def table_structure(table_name) 294: structure = @connection.table_info(quote_table_name(table_name)) 295: raise(ActiveRecord::StatementInvalid, "Could not find table '#{table_name}'") if structure.empty? 296: structure 297: end
# File lib/active_record/connection_adapters/sqlite_adapter.rb, line 390 390: def translate_exception(exception, message) 391: case exception.message 392: when /column(s)? .* (is|are) not unique/ 393: RecordNotUnique.new(message, exception) 394: else 395: super 396: end 397: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.