diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2012-07-10 12:54:56 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2012-07-10 12:54:56 -0700 |
commit | d7b8f0c05945af83bb1ca446e23a26d8f99db2ca (patch) | |
tree | 1680fa60ff7338f8a211987f86c14de466585488 /activerecord/lib | |
parent | 836016e5070ae96006584c5b7310264b0a27f89a (diff) | |
parent | d735abf401c722a2efb9302f5aa6683b047572f8 (diff) | |
download | rails-d7b8f0c05945af83bb1ca446e23a26d8f99db2ca.tar.gz rails-d7b8f0c05945af83bb1ca446e23a26d8f99db2ca.tar.bz2 rails-d7b8f0c05945af83bb1ca446e23a26d8f99db2ca.zip |
Merge pull request #6874 from robbkidd/rename_sequences_too
Rename default sequence when table is renamed? [AR:postgres]
Diffstat (limited to 'activerecord/lib')
-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 7b263fd62d..a57a532ba2 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql_adapter.rb @@ -1227,12 +1227,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. |