Ruby on rails 这两个奇怪的查询在每个请求上都会运行,这是什么?
我将miniprofiler添加到我的应用程序中,并注意到无论控制器或视图如何,在每个请求上都会运行以下两个查询: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
**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在做这个查询?(我怀疑是铁轨)