Files

Class Index [+]

Quicksearch

ActiveRecord::ConnectionAdapters::SQLiteAdapter

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:

Public Class Methods

new(connection, logger, config) click to toggle source
    # File lib/active_record/connection_adapters/sqlite_adapter.rb, line 51
51:       def initialize(connection, logger, config)
52:         super(connection, logger)
53:         @config = config
54:       end

Public Instance Methods

change_column_null(table_name, column_name, null, default = nil) click to toggle source
     # 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
disconnect!() click to toggle source
    # File lib/active_record/connection_adapters/sqlite_adapter.rb, line 80
80:       def disconnect!
81:         super
82:         @connection.close rescue nil
83:       end
empty_insert_statement_value() click to toggle source
     # File lib/active_record/connection_adapters/sqlite_adapter.rb, line 278
278:       def empty_insert_statement_value
279:         "VALUES(NULL)"
280:       end
rename_table(name, new_name) click to toggle source
     # 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
requires_reloading?() click to toggle source
    # File lib/active_record/connection_adapters/sqlite_adapter.rb, line 72
72:       def requires_reloading?
73:         true
74:       end
select_rows(sql, name = nil) click to toggle source
     # 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
supports_add_column?() click to toggle source
    # File lib/active_record/connection_adapters/sqlite_adapter.rb, line 76
76:       def supports_add_column?
77:         sqlite_version >= '3.1.6'
78:       end
supports_ddl_transactions?() click to toggle source
    # File lib/active_record/connection_adapters/sqlite_adapter.rb, line 60
60:       def supports_ddl_transactions?
61:         sqlite_version >= '2.0.0'
62:       end
valid_alter_table_options( type, options) click to toggle source

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

Protected Instance Methods

default_primary_key_type() click to toggle source
     # 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
sqlite_version() click to toggle source
     # 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
table_structure(table_name) click to toggle source
     # 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
translate_exception(exception, message) click to toggle source
     # 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.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.