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:
parent
8ae73f1146
commit
3970432fcb
1 changed files with 25 additions and 2 deletions
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue