Class | ActiveRecord::ConnectionAdapters::SQLiteAdapter |
In: |
vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb
|
Parent: | AbstractAdapter |
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:
remove_column | -> | remove_columns |
# File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 242 242: def change_column_null(table_name, column_name, null, default = nil) 243: unless null || default.nil? 244: execute("UPDATE #{quote_table_name(table_name)} SET #{quote_column_name(column_name)}=#{quote(default)} WHERE #{quote_column_name(column_name)} IS NULL") 245: end 246: alter_table(table_name) do |definition| 247: definition[column_name].null = null 248: end 249: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 87 87: def disconnect! 88: super 89: @connection.close rescue nil 90: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 270 270: def empty_insert_statement(table_name) 271: "INSERT INTO #{table_name} VALUES(NULL)" 272: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 213 213: def rename_table(name, new_name) 214: execute "ALTER TABLE #{name} RENAME TO #{new_name}" 215: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 83 83: def requires_reloading? 84: true 85: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 149 149: def select_rows(sql, name = nil) 150: execute(sql, name).map do |row| 151: (0...(row.size / 2)).map { |i| row[i] } 152: end 153: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 372 372: def catch_schema_changes 373: return yield 374: rescue ActiveRecord::StatementInvalid => exception 375: if exception.message =~ /database schema has changed/ 376: reconnect! 377: retry 378: else 379: raise 380: end 381: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 387 387: def default_primary_key_type 388: if supports_autoincrement? 389: 'INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL'.freeze 390: else 391: 'INTEGER PRIMARY KEY NOT NULL'.freeze 392: end 393: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 383 383: def sqlite_version 384: @sqlite_version ||= select_value('select sqlite_version(*)') 385: end
# File vendor/rails/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb, line 287 287: def table_structure(table_name) 288: returning structure = execute("PRAGMA table_info(#{quote_table_name(table_name)})") do 289: raise(ActiveRecord::StatementInvalid, "Could not find table '#{table_name}'") if structure.empty? 290: end 291: end