aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/fixtures.rb
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2005-10-16 03:45:39 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2005-10-16 03:45:39 +0000
commit7117fdb8ceeb4d8cc18651a74ea52f1bed2b077c (patch)
tree20dff4d44de2dcd1401e8cf008ceca0f077d50d8 /activerecord/lib/active_record/fixtures.rb
parent22b77daeee65aa80061f247a3b36404bacd7dff5 (diff)
downloadrails-7117fdb8ceeb4d8cc18651a74ea52f1bed2b077c.tar.gz
rails-7117fdb8ceeb4d8cc18651a74ea52f1bed2b077c.tar.bz2
rails-7117fdb8ceeb4d8cc18651a74ea52f1bed2b077c.zip
r3616@asus: jeremy | 2005-09-26 23:09:28 -0700
Ticket 2292 - Sequences, schemas, and fixtures r3917@asus: jeremy | 2005-10-15 10:43:24 -0700 fix pk assert r3918@asus: jeremy | 2005-10-15 10:46:52 -0700 rework query cache connection= override r3919@asus: jeremy | 2005-10-15 10:47:45 -0700 correct fixtures usage r3920@asus: jeremy | 2005-10-15 10:53:23 -0700 correct attr assignment r3921@asus: jeremy | 2005-10-15 12:59:10 -0700 sequences r3922@asus: jeremy | 2005-10-15 16:36:09 -0700 reset fixtures work with sequences r3951@asus: jeremy | 2005-10-15 23:23:12 -0700 cut down excess features r3952@asus: jeremy | 2005-10-15 23:40:30 -0700 don't test for PostgreSQL specifically git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2639 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib/active_record/fixtures.rb')
-rwxr-xr-xactiverecord/lib/active_record/fixtures.rb24
1 files changed, 7 insertions, 17 deletions
diff --git a/activerecord/lib/active_record/fixtures.rb b/activerecord/lib/active_record/fixtures.rb
index 6ee963951e..ef4757fcee 100755
--- a/activerecord/lib/active_record/fixtures.rb
+++ b/activerecord/lib/active_record/fixtures.rb
@@ -257,8 +257,13 @@ class Fixtures < YAML::Omap
fixtures.reverse.each { |fixture| fixture.delete_existing_fixtures }
fixtures.each { |fixture| fixture.insert_fixtures }
end
-
- reset_sequences(connection, table_names) if connection.is_a?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter)
+
+ # Cap primary key sequences to max(pk).
+ if connection.respond_to?(:reset_pk_sequence!)
+ table_names.flatten.each do |table_name|
+ connection.reset_pk_sequence!(table_name)
+ end
+ end
return fixtures.size > 1 ? fixtures : fixtures.first
ensure
@@ -266,21 +271,6 @@ class Fixtures < YAML::Omap
end
end
- # Start PostgreSQL fixtures at id 1. Skip tables without models
- # and models with nonstandard primary keys.
- def self.reset_sequences(connection, table_names)
- table_names.flatten.each do |table|
- if table_class = table.to_s.classify.constantize rescue nil
- pk = table_class.columns_hash[table_class.primary_key]
- if pk and pk.type == :integer
- connection.execute(
- "SELECT setval('#{table}_#{pk.name}_seq', (SELECT COALESCE(MAX(#{pk.name}), 0)+1 FROM #{table}), false)",
- 'Setting Sequence'
- )
- end
- end
- end
- end
attr_reader :table_name