Ruby on rails 这两个奇怪的查询在每个请求上都会运行,这是什么?

Ruby on rails 这两个奇怪的查询在每个请求上都会运行,这是什么?,ruby-on-rails,postgresql,ruby-on-rails-4,Ruby On Rails,Postgresql,Ruby On Rails 4,我将miniprofiler添加到我的应用程序中,并注意到无论控制器或视图如何,在每个请求上都会运行以下两个查询: **GET http://acme.app.dev:80 T+4.3 ms Reader 0.7 ms SELECT COUNT(*) FROM pg_class c LEFT JOIN pg_namespace n ON n.oid = c.relnamespace W

我将miniprofiler添加到我的应用程序中,并注意到无论控制器或视图如何,在每个请求上都会运行以下两个查询:

**GET http://acme.app.dev:80
T+4.3 ms
Reader
0.7 ms
              SELECT COUNT(*)
              FROM pg_class c
              LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
              WHERE c.relkind in ('v','r')
              AND c.relname = 'schema_migrations'
              AND n.nspname = ANY (current_schemas(false))

GET http://acme.app.dev:80/search
T+6.8 ms
Reader
0.2 ms
              SELECT "schema_migrations".* FROM "schema_migrations"   
              4.60 ms   
              Executing action: new — 2.60 ms

我的应用程序中没有任何东西可以运行它们。他们是什么?为什么他们总是跑步?我正在将Rails 4与Postgresql一起使用。

Rails 4.0似乎会在每个请求上检查任何未完成的迁移。如果存在未完成的迁移,我会在浏览器中看到此错误:

ActiveRecord::PendingMigrationError

Migrations are pending; run 'rake db:migrate RAILS_ENV=development' to resolve this issue.
我假设这只发生在测试/开发环境中,很可能与您在{test,spec}\u helper.rb中看到的代码相同:

ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)

schema_migrations
表跟踪已运行的迁移。我想不出有什么理由探查器会查看该表,更不用说每个请求了。是否有可能检查每个请求的迁移是否都是最新的,例如,
ActiveRecord::Migration.check\u pending!如果已定义?(ActiveRecord::Migration)
。mini profiler也在做这个查询,还是Rails在做这个查询?(我怀疑是铁轨)