1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

only check pending migrations if there are new files

This commit is contained in:
Aaron Patterson 2013-06-05 17:56:46 +09:00
parent 8ae73f1146
commit 3970432fcb

View file

@ -357,10 +357,15 @@ module ActiveRecord
class CheckPending
def initialize(app)
@app = app
@last_check = 0
end
def call(env)
ActiveRecord::Migration.check_pending!
mtime = ActiveRecord::Migrator.last_migration.mtime.to_i
if @last_check < mtime
ActiveRecord::Migration.check_pending!
@last_check = mtime
end
@app.call(env)
end
end
@ -698,6 +703,10 @@ module ActiveRecord
File.basename(filename)
end
def mtime
File.mtime filename
end
delegate :migrate, :announce, :write, :disable_ddl_transaction, to: :migration
private
@ -713,6 +722,16 @@ module ActiveRecord
end
class NullMigration < MigrationProxy
def initialize(name, version, filename, scope)
super(nil, 0, nil, nil)
end
def mtime
0
end
end
class Migrator#:nodoc:
class << self
attr_writer :migrations_paths
@ -783,7 +802,11 @@ module ActiveRecord
end
def last_version
migrations(migrations_paths).last.try(:version)||0
last_migration.version
end
def last_migration # :nodoc:
migrations(migrations_paths).last || NullMigration.new
end
def proper_table_name(name)