mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
add prefix and suffix to renamed tables, closes #1510
This commit is contained in:
parent
7eb596cddd
commit
0968ee3456
4 changed files with 52 additions and 0 deletions
|
@ -443,6 +443,7 @@ module ActiveRecord
|
|||
say_with_time "#{method}(#{arg_list})" do
|
||||
unless arguments.empty? || method == :execute
|
||||
arguments[0] = Migrator.proper_table_name(arguments.first)
|
||||
arguments[1] = Migrator.proper_table_name(arguments.second) if method == :rename_table
|
||||
end
|
||||
return super unless connection.respond_to?(method)
|
||||
connection.send(method, *arguments, &block)
|
||||
|
|
|
@ -6,6 +6,8 @@ require 'models/topic'
|
|||
require 'models/developer'
|
||||
|
||||
require MIGRATIONS_ROOT + "/valid/2_we_need_reminders"
|
||||
require MIGRATIONS_ROOT + "/rename/1_we_need_things"
|
||||
require MIGRATIONS_ROOT + "/rename/2_rename_things"
|
||||
require MIGRATIONS_ROOT + "/decimal/1_give_me_big_numbers"
|
||||
|
||||
if ActiveRecord::Base.connection.supports_migrations?
|
||||
|
@ -13,6 +15,8 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
|
||||
class Reminder < ActiveRecord::Base; end
|
||||
|
||||
class Thing < ActiveRecord::Base; end
|
||||
|
||||
class ActiveRecord::Migration
|
||||
class << self
|
||||
attr_accessor :message_count
|
||||
|
@ -57,6 +61,11 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
ActiveRecord::Base.connection.initialize_schema_migrations_table
|
||||
ActiveRecord::Base.connection.execute "DELETE FROM #{ActiveRecord::Migrator.schema_migrations_table_name}"
|
||||
|
||||
%w(things awesome_things prefix_things_suffix prefix_awesome_things_suffix).each do |table|
|
||||
Thing.connection.drop_table(table) rescue nil
|
||||
end
|
||||
Thing.reset_column_information
|
||||
|
||||
%w(reminders people_reminders prefix_reminders_suffix).each do |table|
|
||||
Reminder.connection.drop_table(table) rescue nil
|
||||
end
|
||||
|
@ -1534,6 +1543,28 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
Reminder.reset_table_name
|
||||
end
|
||||
|
||||
def test_rename_table_with_prefix_and_suffix
|
||||
assert !Thing.table_exists?
|
||||
ActiveRecord::Base.table_name_prefix = 'prefix_'
|
||||
ActiveRecord::Base.table_name_suffix = '_suffix'
|
||||
Thing.reset_table_name
|
||||
Thing.reset_sequence_name
|
||||
WeNeedThings.up
|
||||
|
||||
assert Thing.create("content" => "hello world")
|
||||
assert_equal "hello world", Thing.find(:first).content
|
||||
|
||||
RenameThings.up
|
||||
Thing.set_table_name("prefix_awesome_things_suffix")
|
||||
|
||||
assert_equal "hello world", Thing.find(:first).content
|
||||
ensure
|
||||
ActiveRecord::Base.table_name_prefix = ''
|
||||
ActiveRecord::Base.table_name_suffix = ''
|
||||
Thing.reset_table_name
|
||||
Thing.reset_sequence_name
|
||||
end
|
||||
|
||||
def test_add_drop_table_with_prefix_and_suffix
|
||||
assert !Reminder.table_exists?
|
||||
ActiveRecord::Base.table_name_prefix = 'prefix_'
|
||||
|
|
11
activerecord/test/migrations/rename/1_we_need_things.rb
Normal file
11
activerecord/test/migrations/rename/1_we_need_things.rb
Normal file
|
@ -0,0 +1,11 @@
|
|||
class WeNeedThings < ActiveRecord::Migration
|
||||
def self.up
|
||||
create_table("things") do |t|
|
||||
t.column :content, :text
|
||||
end
|
||||
end
|
||||
|
||||
def self.down
|
||||
drop_table "things"
|
||||
end
|
||||
end
|
9
activerecord/test/migrations/rename/2_rename_things.rb
Normal file
9
activerecord/test/migrations/rename/2_rename_things.rb
Normal file
|
@ -0,0 +1,9 @@
|
|||
class RenameThings < ActiveRecord::Migration
|
||||
def self.up
|
||||
rename_table "things", "awesome_things"
|
||||
end
|
||||
|
||||
def self.down
|
||||
rename_table "awesome_things", "things"
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue