aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb9
-rw-r--r--activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb15
-rw-r--r--activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb19
3 files changed, 19 insertions, 24 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
index 76b65bf219..ffc3847a31 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
@@ -103,10 +103,15 @@ module ActiveRecord
# The +options+ hash can include the following keys:
# [<tt>:id</tt>]
# Whether to automatically add a primary key column. Defaults to true.
- # Join tables for +has_and_belongs_to_many+ should set <tt>:id => false</tt>.
+ # Join tables for +has_and_belongs_to_many+ should set it to false.
# [<tt>:primary_key</tt>]
# The name of the primary key, if one is to be added automatically.
- # Defaults to +id+.
+ # Defaults to +id+. If <tt>:id</tt> is false this option is ignored.
+ #
+ # Also note that this just sets the primary key in the table. You additionally
+ # need to configure the primary key in the model via the +set_primary_key+ macro.
+ # Models do NOT auto-detect the primary key from their table definition.
+ #
# [<tt>:options</tt>]
# Any extra options you want appended to the table definition.
# [<tt>:temporary</tt>]
diff --git a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
index 0d9a86a1ea..e5e92f2b1c 100644
--- a/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb
@@ -4,7 +4,17 @@ module ActiveRecord
class Base
# sqlite3 adapter reuses sqlite_connection.
def self.sqlite3_connection(config) # :nodoc:
- parse_sqlite_config!(config)
+ # Require database.
+ unless config[:database]
+ raise ArgumentError, "No database file specified. Missing argument: database"
+ end
+
+ # Allow database path relative to Rails.root, but only if
+ # the database path is not the special path that tells
+ # Sqlite to build a database only in memory.
+ if defined?(Rails.root) && ':memory:' != config[:database]
+ config[:database] = File.expand_path(config[:database], Rails.root)
+ end
unless 'sqlite3' == config[:adapter]
raise ArgumentError, 'adapter name should be "sqlite3"'
@@ -16,8 +26,7 @@ module ActiveRecord
db = SQLite3::Database.new(
config[:database],
- :results_as_hash => true,
- :type_translation => false
+ :results_as_hash => true
)
db.busy_timeout(config[:timeout]) unless config[:timeout].nil?
diff --git a/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb
index 1927585c49..117cf447df 100644
--- a/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb
@@ -2,25 +2,6 @@ require 'active_record/connection_adapters/abstract_adapter'
require 'active_support/core_ext/kernel/requires'
module ActiveRecord
- class Base
- class << self
- private
- def parse_sqlite_config!(config)
- # Require database.
- unless config[:database]
- raise ArgumentError, "No database file specified. Missing argument: database"
- end
-
- # Allow database path relative to Rails.root, but only if
- # the database path is not the special path that tells
- # Sqlite to build a database only in memory.
- if defined?(Rails.root) && ':memory:' != config[:database]
- config[:database] = File.expand_path(config[:database], Rails.root)
- end
- end
- end
- end
-
module ConnectionAdapters #:nodoc:
class SQLiteColumn < Column #:nodoc:
class << self