diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2007-01-15 00:34:43 +0000 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2007-01-15 00:34:43 +0000 |
commit | e3103441114b1c5e7b67b71efa9c0b44e03645e6 (patch) | |
tree | 54bfe03ea0ef7637367bfb04e0200f939d9594cd /activerecord/lib/active_record | |
parent | 9ccb12a3dda123942def21834eedb761299f67b9 (diff) | |
download | rails-e3103441114b1c5e7b67b71efa9c0b44e03645e6.tar.gz rails-e3103441114b1c5e7b67b71efa9c0b44e03645e6.tar.bz2 rails-e3103441114b1c5e7b67b71efa9c0b44e03645e6.zip |
Oracle: create_table takes a :sequence_name option to override the 'tablename_seq' default. Closes #7000.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5933 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib/active_record')
3 files changed, 8 insertions, 6 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 8a8d956ca8..8891c10c7c 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb @@ -94,7 +94,7 @@ module ActiveRecord yield table_definition if options[:force] - drop_table(name) rescue nil + drop_table(name, options) rescue nil end create_sql = "CREATE#{' TEMPORARY' if options[:temporary]} TABLE " @@ -112,7 +112,7 @@ module ActiveRecord end # Drops a table from the database. - def drop_table(name) + def drop_table(name, options = {}) execute "DROP TABLE #{name}" end diff --git a/activerecord/lib/active_record/connection_adapters/frontbase_adapter.rb b/activerecord/lib/active_record/connection_adapters/frontbase_adapter.rb index db9d2ccf3d..cd48978f4e 100644 --- a/activerecord/lib/active_record/connection_adapters/frontbase_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/frontbase_adapter.rb @@ -778,7 +778,7 @@ module ActiveRecord end # Drops a table from the database. - def drop_table(name) + def drop_table(name, options = {}) execute "DROP TABLE #{name} RESTRICT" rescue ActiveRecord::StatementInvalid => e raise e unless e.message.match(/Referenced TABLE - \w* - does not exist/) diff --git a/activerecord/lib/active_record/connection_adapters/oracle_adapter.rb b/activerecord/lib/active_record/connection_adapters/oracle_adapter.rb index 53cf2a439a..6a0209fceb 100644 --- a/activerecord/lib/active_record/connection_adapters/oracle_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/oracle_adapter.rb @@ -351,7 +351,8 @@ begin def create_table(name, options = {}) #:nodoc: super(name, options) - execute "CREATE SEQUENCE #{name}_seq START WITH 10000" unless options[:id] == false + seq_name = options[:sequence_name] || "#{name}_seq" + execute "CREATE SEQUENCE #{seq_name} START WITH 10000" unless options[:id] == false end def rename_table(name, new_name) #:nodoc: @@ -359,9 +360,10 @@ begin execute "RENAME #{name}_seq TO #{new_name}_seq" rescue nil end - def drop_table(name) #:nodoc: + def drop_table(name, options = {}) #:nodoc: super(name) - execute "DROP SEQUENCE #{name}_seq" rescue nil + seq_name = options[:sequence_name] || "#{name}_seq" + execute "DROP SEQUENCE #{seq_name}" rescue nil end def remove_index(table_name, options = {}) #:nodoc: |