aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2017-03-05 00:29:41 +0900
committerRyuta Kamizono <kamipo@gmail.com>2017-03-05 00:29:41 +0900
commit031605aa90fd6bbb706758cdf1a6e235f48c0ea7 (patch)
tree44cc0504be57f06aa0cd1eadbec13b94c9e38aed /activerecord/lib
parent145adda5815e910df09af107e9ff97467799e853 (diff)
downloadrails-031605aa90fd6bbb706758cdf1a6e235f48c0ea7.tar.gz
rails-031605aa90fd6bbb706758cdf1a6e235f48c0ea7.tar.bz2
rails-031605aa90fd6bbb706758cdf1a6e235f48c0ea7.zip
Fix `rake db:schema:load` with subdirectories
Related #25174. `db:schema:load` doesn't work with subdirectories like previous `db:migrate:status`. `Migrator.migration_files` should be used in `assume_migrated_upto_version` to fix the issue.
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb9
1 files changed, 4 insertions, 5 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 e683106527..1df586f672 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb
@@ -1022,15 +1022,14 @@ module ActiveRecord
{ primary_key: true }
end
- def assume_migrated_upto_version(version, migrations_paths)
- migrations_paths = Array(migrations_paths)
+ def assume_migrated_upto_version(version, paths) # :nodoc:
+ paths = Array(paths)
version = version.to_i
sm_table = quote_table_name(ActiveRecord::Migrator.schema_migrations_table_name)
migrated = select_values("SELECT version FROM #{sm_table}").map(&:to_i)
- paths = migrations_paths.map { |p| "#{p}/[0-9]*_*.rb" }
- versions = Dir[*paths].map do |filename|
- filename.split("/").last.split("_").first.to_i
+ versions = ActiveRecord::Migrator.migration_files(paths).map do |file|
+ ActiveRecord::Migrator.parse_migration_filename(file).first.to_i
end
unless migrated.include?(version)