From e3103441114b1c5e7b67b71efa9c0b44e03645e6 Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Mon, 15 Jan 2007 00:34:43 +0000 Subject: 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 --- .../connection_adapters/abstract/schema_statements.rb | 4 ++-- .../lib/active_record/connection_adapters/frontbase_adapter.rb | 2 +- .../lib/active_record/connection_adapters/oracle_adapter.rb | 8 +++++--- 3 files changed, 8 insertions(+), 6 deletions(-) (limited to 'activerecord/lib/active_record/connection_adapters') 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: -- cgit v1.2.3