mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Add suffix for migrations copied from engines
This commit is contained in:
parent
255d9f5ac1
commit
ed0b1f6eed
3 changed files with 34 additions and 34 deletions
|
@ -472,7 +472,7 @@ module ActiveRecord
|
|||
end
|
||||
|
||||
migration.version = next_migration_number(last ? last.version + 1 : 0).to_i
|
||||
new_path = File.join(destination, "#{migration.version}_#{migration.name.underscore}.rb")
|
||||
new_path = File.join(destination, "#{migration.version}_#{migration.name.underscore}.#{name}.rb")
|
||||
old_path, migration.filename = migration.filename, new_path
|
||||
last = migration
|
||||
|
||||
|
@ -513,9 +513,9 @@ module ActiveRecord
|
|||
|
||||
# MigrationProxy is used to defer loading of the actual migration classes
|
||||
# until they are needed
|
||||
class MigrationProxy < Struct.new(:name, :version, :filename)
|
||||
class MigrationProxy < Struct.new(:name, :version, :filename, :scope)
|
||||
|
||||
def initialize(name, version, filename)
|
||||
def initialize(name, version, filename, scope)
|
||||
super
|
||||
@migration = nil
|
||||
end
|
||||
|
@ -619,7 +619,7 @@ module ActiveRecord
|
|||
seen = Hash.new false
|
||||
|
||||
migrations = files.map do |file|
|
||||
version, name = file.scan(/([0-9]+)_([_a-z0-9]*).rb/).first
|
||||
version, name, scope = file.scan(/([0-9]+)_([_a-z0-9]*)\.?([_a-z0-9]*)?.rb/).first
|
||||
|
||||
raise IllegalMigrationNameError.new(file) unless version
|
||||
version = version.to_i
|
||||
|
@ -630,7 +630,7 @@ module ActiveRecord
|
|||
|
||||
seen[version] = seen[name] = true
|
||||
|
||||
MigrationProxy.new(name, version, file)
|
||||
MigrationProxy.new(name, version, file, scope)
|
||||
end
|
||||
|
||||
migrations.sort_by(&:version)
|
||||
|
|
|
@ -2108,12 +2108,12 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
@existing_migrations = Dir[@migrations_path + "/*.rb"]
|
||||
|
||||
copied = ActiveRecord::Migration.copy(@migrations_path, {:bukkits => MIGRATIONS_ROOT + "/to_copy"})
|
||||
assert File.exists?(@migrations_path + "/4_people_have_hobbies.rb")
|
||||
assert File.exists?(@migrations_path + "/5_people_have_descriptions.rb")
|
||||
assert_equal [@migrations_path + "/4_people_have_hobbies.rb", @migrations_path + "/5_people_have_descriptions.rb"], copied.map(&:filename)
|
||||
assert File.exists?(@migrations_path + "/4_people_have_hobbies.bukkits.rb")
|
||||
assert File.exists?(@migrations_path + "/5_people_have_descriptions.bukkits.rb")
|
||||
assert_equal [@migrations_path + "/4_people_have_hobbies.bukkits.rb", @migrations_path + "/5_people_have_descriptions.bukkits.rb"], copied.map(&:filename)
|
||||
|
||||
expected = "# This migration comes from bukkits (originally 1)"
|
||||
assert_equal expected, IO.readlines(@migrations_path + "/4_people_have_hobbies.rb")[0].chomp
|
||||
assert_equal expected, IO.readlines(@migrations_path + "/4_people_have_hobbies.bukkits.rb")[0].chomp
|
||||
|
||||
files_count = Dir[@migrations_path + "/*.rb"].length
|
||||
copied = ActiveRecord::Migration.copy(@migrations_path, {:bukkits => MIGRATIONS_ROOT + "/to_copy"})
|
||||
|
@ -2132,10 +2132,10 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
sources[:bukkits] = MIGRATIONS_ROOT + "/to_copy"
|
||||
sources[:omg] = MIGRATIONS_ROOT + "/to_copy2"
|
||||
ActiveRecord::Migration.copy(@migrations_path, sources)
|
||||
assert File.exists?(@migrations_path + "/4_people_have_hobbies.rb")
|
||||
assert File.exists?(@migrations_path + "/5_people_have_descriptions.rb")
|
||||
assert File.exists?(@migrations_path + "/6_create_articles.rb")
|
||||
assert File.exists?(@migrations_path + "/7_create_comments.rb")
|
||||
assert File.exists?(@migrations_path + "/4_people_have_hobbies.bukkits.rb")
|
||||
assert File.exists?(@migrations_path + "/5_people_have_descriptions.bukkits.rb")
|
||||
assert File.exists?(@migrations_path + "/6_create_articles.omg.rb")
|
||||
assert File.exists?(@migrations_path + "/7_create_comments.omg.rb")
|
||||
|
||||
files_count = Dir[@migrations_path + "/*.rb"].length
|
||||
ActiveRecord::Migration.copy(@migrations_path, sources)
|
||||
|
@ -2150,10 +2150,10 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
|
||||
Time.travel_to(Time.utc(2010, 7, 26, 10, 10, 10)) do
|
||||
copied = ActiveRecord::Migration.copy(@migrations_path, {:bukkits => MIGRATIONS_ROOT + "/to_copy_with_timestamps"})
|
||||
assert File.exists?(@migrations_path + "/20100726101010_people_have_hobbies.rb")
|
||||
assert File.exists?(@migrations_path + "/20100726101011_people_have_descriptions.rb")
|
||||
expected = [@migrations_path + "/20100726101010_people_have_hobbies.rb",
|
||||
@migrations_path + "/20100726101011_people_have_descriptions.rb"]
|
||||
assert File.exists?(@migrations_path + "/20100726101010_people_have_hobbies.bukkits.rb")
|
||||
assert File.exists?(@migrations_path + "/20100726101011_people_have_descriptions.bukkits.rb")
|
||||
expected = [@migrations_path + "/20100726101010_people_have_hobbies.bukkits.rb",
|
||||
@migrations_path + "/20100726101011_people_have_descriptions.bukkits.rb"]
|
||||
assert_equal expected, copied.map(&:filename)
|
||||
|
||||
files_count = Dir[@migrations_path + "/*.rb"].length
|
||||
|
@ -2175,10 +2175,10 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
|
||||
Time.travel_to(Time.utc(2010, 7, 26, 10, 10, 10)) do
|
||||
copied = ActiveRecord::Migration.copy(@migrations_path, sources)
|
||||
assert File.exists?(@migrations_path + "/20100726101010_people_have_hobbies.rb")
|
||||
assert File.exists?(@migrations_path + "/20100726101011_people_have_descriptions.rb")
|
||||
assert File.exists?(@migrations_path + "/20100726101012_create_articles.rb")
|
||||
assert File.exists?(@migrations_path + "/20100726101013_create_comments.rb")
|
||||
assert File.exists?(@migrations_path + "/20100726101010_people_have_hobbies.bukkits.rb")
|
||||
assert File.exists?(@migrations_path + "/20100726101011_people_have_descriptions.bukkits.rb")
|
||||
assert File.exists?(@migrations_path + "/20100726101012_create_articles.omg.rb")
|
||||
assert File.exists?(@migrations_path + "/20100726101013_create_comments.omg.rb")
|
||||
assert_equal 4, copied.length
|
||||
|
||||
files_count = Dir[@migrations_path + "/*.rb"].length
|
||||
|
@ -2195,8 +2195,8 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
|
||||
Time.travel_to(Time.utc(2010, 2, 20, 10, 10, 10)) do
|
||||
ActiveRecord::Migration.copy(@migrations_path, {:bukkits => MIGRATIONS_ROOT + "/to_copy_with_timestamps"})
|
||||
assert File.exists?(@migrations_path + "/20100301010102_people_have_hobbies.rb")
|
||||
assert File.exists?(@migrations_path + "/20100301010103_people_have_descriptions.rb")
|
||||
assert File.exists?(@migrations_path + "/20100301010102_people_have_hobbies.bukkits.rb")
|
||||
assert File.exists?(@migrations_path + "/20100301010103_people_have_descriptions.bukkits.rb")
|
||||
|
||||
files_count = Dir[@migrations_path + "/*.rb"].length
|
||||
copied = ActiveRecord::Migration.copy(@migrations_path, {:bukkits => MIGRATIONS_ROOT + "/to_copy_with_timestamps"})
|
||||
|
@ -2257,7 +2257,7 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
copied = ActiveRecord::Migration.copy(@migrations_path, sources, :on_skip => on_skip)
|
||||
|
||||
# remove origin comment
|
||||
migration = @migrations_path + "/4_people_have_hobbies.rb"
|
||||
migration = @migrations_path + "/4_people_have_hobbies.bukkits.rb"
|
||||
migration_source = File.read(migration).lines.to_a[1..-1].join
|
||||
File.open(migration, "w") { |f| f.write migration_source }
|
||||
|
||||
|
@ -2275,8 +2275,8 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
|
||||
Time.travel_to(Time.utc(2010, 7, 26, 10, 10, 10)) do
|
||||
copied = ActiveRecord::Migration.copy(@migrations_path, {:bukkits => MIGRATIONS_ROOT + "/to_copy_with_timestamps"})
|
||||
assert File.exists?(@migrations_path + "/20100726101010_people_have_hobbies.rb")
|
||||
assert File.exists?(@migrations_path + "/20100726101011_people_have_descriptions.rb")
|
||||
assert File.exists?(@migrations_path + "/20100726101010_people_have_hobbies.bukkits.rb")
|
||||
assert File.exists?(@migrations_path + "/20100726101011_people_have_descriptions.bukkits.rb")
|
||||
assert_equal 2, copied.length
|
||||
end
|
||||
ensure
|
||||
|
@ -2290,8 +2290,8 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
|
||||
Time.travel_to(Time.utc(2010, 7, 26, 10, 10, 10)) do
|
||||
copied = ActiveRecord::Migration.copy(@migrations_path, {:bukkits => MIGRATIONS_ROOT + "/to_copy_with_timestamps"})
|
||||
assert File.exists?(@migrations_path + "/20100726101010_people_have_hobbies.rb")
|
||||
assert File.exists?(@migrations_path + "/20100726101011_people_have_descriptions.rb")
|
||||
assert File.exists?(@migrations_path + "/20100726101010_people_have_hobbies.bukkits.rb")
|
||||
assert File.exists?(@migrations_path + "/20100726101011_people_have_descriptions.bukkits.rb")
|
||||
assert_equal 2, copied.length
|
||||
end
|
||||
ensure
|
||||
|
|
|
@ -78,19 +78,19 @@ module RailtiesTest
|
|||
Dir.chdir(app_path) do
|
||||
output = `bundle exec rake bukkits:install:migrations`
|
||||
|
||||
assert File.exists?("#{app_path}/db/migrate/2_create_users.rb")
|
||||
assert File.exists?("#{app_path}/db/migrate/3_add_last_name_to_users.rb")
|
||||
assert_match(/Copied migration 2_create_users.rb from bukkits/, output)
|
||||
assert_match(/Copied migration 3_add_last_name_to_users.rb from bukkits/, output)
|
||||
assert File.exists?("#{app_path}/db/migrate/2_create_users.bukkits.rb")
|
||||
assert File.exists?("#{app_path}/db/migrate/3_add_last_name_to_users.bukkits.rb")
|
||||
assert_match(/Copied migration 2_create_users.bukkits.rb from bukkits/, output)
|
||||
assert_match(/Copied migration 3_add_last_name_to_users.bukkits.rb from bukkits/, output)
|
||||
assert_match(/NOTE: Migration 3_create_sessions.rb from bukkits has been skipped/, output)
|
||||
assert_equal 3, Dir["#{app_path}/db/migrate/*.rb"].length
|
||||
|
||||
output = `bundle exec rake railties:install:migrations`.split("\n")
|
||||
|
||||
assert File.exists?("#{app_path}/db/migrate/4_create_yaffles.rb")
|
||||
assert File.exists?("#{app_path}/db/migrate/4_create_yaffles.acts_as_yaffle.rb")
|
||||
assert_no_match(/2_create_users/, output.join("\n"))
|
||||
|
||||
yaffle_migration_order = output.index(output.detect{|o| /Copied migration 4_create_yaffles.rb from acts_as_yaffle/ =~ o })
|
||||
yaffle_migration_order = output.index(output.detect{|o| /Copied migration 4_create_yaffles.acts_as_yaffle.rb from acts_as_yaffle/ =~ o })
|
||||
bukkits_migration_order = output.index(output.detect{|o| /NOTE: Migration 3_create_sessions.rb from bukkits has been skipped/ =~ o })
|
||||
assert_not_nil yaffle_migration_order, "Expected migration to be copied"
|
||||
assert_not_nil bukkits_migration_order, "Expected migration to be skipped"
|
||||
|
|
Loading…
Reference in a new issue