mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Call assume_migrated_upto_version on connection
Call assume_migrated_upto_version on connection to prevent it from first being picked up in method_missing. In the base class, Migration, method_missing expects the argument to be a table name, and calls proper_table_name on the arguments before sending to connection. If table_name_prefix or table_name_suffix is used, the schema version changes to prefix_version_suffix, breaking `rake test:prepare`. Fixes #10411.
This commit is contained in:
parent
51157c9b46
commit
443f8dd5cd
3 changed files with 32 additions and 1 deletions
|
@ -1,3 +1,14 @@
|
|||
* Fix pending migrations error when loading schema and ActiveRecord::Base.table_name_prefix is not blank.
|
||||
|
||||
Call assume_migrated_upto_version on connection to prevent it from first being picked up in method_missing.
|
||||
In the base class, Migration, method_missing expects the argument to be a table name, and calls proper_table_name
|
||||
on the arguments before sending to connection. If table_name_prefix or table_name_suffix is used, the schema
|
||||
version changes to prefix_version_suffix, breaking `rake test:prepare`.
|
||||
|
||||
Fixes #10411.
|
||||
|
||||
*Kyle Stevens*
|
||||
|
||||
* Method read_attribute_before_type_cast should accept input as symbol.
|
||||
|
||||
*Neeraj Singh*
|
||||
|
|
|
@ -43,7 +43,7 @@ module ActiveRecord
|
|||
|
||||
unless info[:version].blank?
|
||||
initialize_schema_migrations_table
|
||||
assume_migrated_upto_version(info[:version], migrations_paths)
|
||||
connection.assume_migrated_upto_version(info[:version], migrations_paths)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -12,6 +12,8 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
|
||||
def teardown
|
||||
@connection.drop_table :fruits rescue nil
|
||||
@connection.drop_table :nep_fruits rescue nil
|
||||
@connection.drop_table :nep_schema_migrations rescue nil
|
||||
ActiveRecord::SchemaMigration.delete_all rescue nil
|
||||
end
|
||||
|
||||
|
@ -30,6 +32,24 @@ if ActiveRecord::Base.connection.supports_migrations?
|
|||
assert_equal 7, ActiveRecord::Migrator::current_version
|
||||
end
|
||||
|
||||
def test_schema_define_w_table_name_prefix
|
||||
table_name = ActiveRecord::SchemaMigration.table_name
|
||||
ActiveRecord::Base.table_name_prefix = "nep_"
|
||||
ActiveRecord::SchemaMigration.table_name = "nep_#{table_name}"
|
||||
ActiveRecord::Schema.define(:version => 7) do
|
||||
create_table :fruits do |t|
|
||||
t.column :color, :string
|
||||
t.column :fruit_size, :string # NOTE: "size" is reserved in Oracle
|
||||
t.column :texture, :string
|
||||
t.column :flavor, :string
|
||||
end
|
||||
end
|
||||
assert_equal 7, ActiveRecord::Migrator::current_version
|
||||
ensure
|
||||
ActiveRecord::Base.table_name_prefix = ""
|
||||
ActiveRecord::SchemaMigration.table_name = table_name
|
||||
end
|
||||
|
||||
def test_schema_raises_an_error_for_invalid_column_type
|
||||
assert_raise NoMethodError do
|
||||
ActiveRecord::Schema.define(:version => 8) do
|
||||
|
|
Loading…
Reference in a new issue