aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorRafael Mendonça França <rafaelmfranca@gmail.com>2014-08-19 15:55:15 -0300
committerRafael Mendonça França <rafaelmfranca@gmail.com>2014-08-19 15:55:15 -0300
commit315de6e4904cca63dcce7c91f0d06aa43caf62fb (patch)
tree774bbc5359bea20520c46d7db00e0b1f3123bf8d /activerecord/lib
parent48e2b86a507269b5e757106d9accd7b4606333d3 (diff)
parent838e18321118ee3ec6669217e5ea0216f79c969a (diff)
downloadrails-315de6e4904cca63dcce7c91f0d06aa43caf62fb.tar.gz
rails-315de6e4904cca63dcce7c91f0d06aa43caf62fb.tar.bz2
rails-315de6e4904cca63dcce7c91f0d06aa43caf62fb.zip
Merge pull request #16349 from jmcnevin/master
Correctly determine if migration is needed.
Diffstat (limited to 'activerecord/lib')
-rw-r--r--activerecord/lib/active_record/migration.rb17
1 files changed, 8 insertions, 9 deletions
diff --git a/activerecord/lib/active_record/migration.rb b/activerecord/lib/active_record/migration.rb
index a6847e28c2..659c5e3bbb 100644
--- a/activerecord/lib/active_record/migration.rb
+++ b/activerecord/lib/active_record/migration.rb
@@ -836,21 +836,20 @@ module ActiveRecord
SchemaMigration.table_name
end
- def get_all_versions
- SchemaMigration.all.map { |x| x.version.to_i }.sort
+ def get_all_versions(connection = Base.connection)
+ if connection.table_exists?(schema_migrations_table_name)
+ SchemaMigration.all.map { |x| x.version.to_i }.sort
+ else
+ []
+ end
end
def current_version(connection = Base.connection)
- sm_table = schema_migrations_table_name
- if connection.table_exists?(sm_table)
- get_all_versions.max || 0
- else
- 0
- end
+ get_all_versions(connection).max || 0
end
def needs_migration?(connection = Base.connection)
- current_version(connection) < last_version
+ (migrations(migrations_paths).collect(&:version) - get_all_versions(connection)).size > 0
end
def last_version