aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2006-11-09 21:17:43 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2006-11-09 21:17:43 +0000
commitd97a84fb593746caa5806704fe3018aa3f3fc422 (patch)
treebb86f77a6e84ffeee80a10b5660a538feb5239b4 /activerecord/lib
parent510092c681a2cd9cc218d01b97b81525cba310c3 (diff)
downloadrails-d97a84fb593746caa5806704fe3018aa3f3fc422.tar.gz
rails-d97a84fb593746caa5806704fe3018aa3f3fc422.tar.bz2
rails-d97a84fb593746caa5806704fe3018aa3f3fc422.zip
SQLite: use AUTOINCREMENT primary key in >= 3.1.0. Closes #6588.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5477 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb10
1 files changed, 9 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb
index 43d513e293..38e6d853d6 100644
--- a/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/sqlite_adapter.rb
@@ -108,7 +108,7 @@ module ActiveRecord
def native_database_types #:nodoc:
{
- :primary_key => "INTEGER PRIMARY KEY NOT NULL",
+ :primary_key => default_primary_key_type,
:string => { :name => "varchar", :limit => 255 },
:text => { :name => "text" },
:integer => { :name => "integer" },
@@ -351,6 +351,14 @@ module ActiveRecord
def sqlite_version
@sqlite_version ||= select_value('select sqlite_version(*)')
end
+
+ def default_primary_key_type
+ if sqlite_version >= '3.1.0'
+ 'INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL'.freeze
+ else
+ 'INTEGER PRIMARY KEY NOT NULL'.freeze
+ end
+ end
end
class SQLite2Adapter < SQLiteAdapter # :nodoc: