diff options
author | Robb Kidd <robb@thekidds.org> | 2012-07-10 21:33:24 -0400 |
---|---|---|
committer | Robb Kidd <robb@thekidds.org> | 2012-07-10 21:37:38 -0400 |
commit | 8d3eafe7906f6d6cf22f7d1ff038c887a32d9a6b (patch) | |
tree | efe70a001cbb118000d37c2085a954994355e7d9 /activerecord/lib/active_record | |
parent | 3b1de4a29cb8dd463c2fe12f981ca56559f4e5bb (diff) | |
download | rails-8d3eafe7906f6d6cf22f7d1ff038c887a32d9a6b.tar.gz rails-8d3eafe7906f6d6cf22f7d1ff038c887a32d9a6b.tar.bz2 rails-8d3eafe7906f6d6cf22f7d1ff038c887a32d9a6b.zip |
Update psql adapter to rename a default pkey sequence during rename_table.
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb index 822f8f73de..cd565787b3 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb @@ -1005,12 +1005,19 @@ module ActiveRecord end # Renames a table. + # Also renames a table's primary key sequence if the sequence name matches the + # Active Record default. # # Example: # rename_table('octopuses', 'octopi') def rename_table(name, new_name) clear_cache! execute "ALTER TABLE #{quote_table_name(name)} RENAME TO #{quote_table_name(new_name)}" + pk, seq = pk_and_sequence_for(new_name) + if seq == "#{name}_#{pk}_seq" + new_seq = "#{new_name}_#{pk}_seq" + execute "ALTER TABLE #{quote_table_name(seq)} RENAME TO #{quote_table_name(new_seq)}" + end end # Adds a new column to the named table. |