[RUBY-ON-RAILS] 어떻게 SQL은 레일 콘솔에서 쿼리를 실행 보여?
RUBY-ON-RAILS어떻게 SQL은 레일 콘솔에서 쿼리를 실행 보여?
내가 콘솔에서 쿼리 (i.n. Model.where (...) 또는 record.associated 일)를 실행하면, 어떻게 내가 더 무슨 일이 일어나고 있는지 이해를 얻을 수 있도록 실제 데이터베이스 쿼리가 실행되는 것을 볼 수 있습니까?
해결법
-
==============================
1.콘솔에서이 줄을 입력합니다 :
콘솔에서이 줄을 입력합니다 :
ActiveRecord::Base.logger = Logger.new(STDOUT)
콘솔에서이 줄을 입력합니다 :
ActiveRecord::Base.connection.instance_variable_set :@logger, Logger.new(STDOUT)
-
==============================
2.레일에서 3+ 당신은 액티브 :: 관계의 to_sql 방법을 사용할 수 있습니다 :
레일에서 3+ 당신은 액티브 :: 관계의 to_sql 방법을 사용할 수 있습니다 :
User.where(:id => 3).to_sql #=> "SELECT \"users\".* FROM \"users\" WHERE \"users\".\"id\" = 3"
-
==============================
3.레일 4의 .explain 방법이있다. (.to_sql도 작동하지만,하지 않습니다 쇼 포함)
레일 4의 .explain 방법이있다. (.to_sql도 작동하지만,하지 않습니다 쇼 포함)
Category.includes(:products).explain => EXPLAIN for: SELECT "categories".* FROM "categories" 0|0|0|SCAN TABLE categories EXPLAIN for: SELECT "categories_products".* FROM "categories_products" WHERE "categories_products"."category_id" IN (1, 2) 0|0|0|SCAN TABLE categories_products EXPLAIN for: SELECT "products".* FROM "products" WHERE "products"."id" IN (1, 2, 3, 4, 5, 6, 7) 0|0|0|SEARCH TABLE products USING INTEGER PRIMARY KEY (rowid=?) 0|0|0|EXECUTE LIST SUBQUERY 1
-
==============================
4.최근에서, 당신은이를 사용할 수 있습니다 :
최근에서, 당신은이를 사용할 수 있습니다 :
https://github.com/dejan/rails_panel
그것은 개발자 콘솔 패널로 구성 추가에 크롬과 같은 응용 프로그램의 Gemfile에 추가해야합니다 보석 파일 :
group :development do gem 'meta_request' end
그런 다음 다시 실행
bundle install
를 열고 발사 개발자 콘솔, 그리고 당신이 이런 식으로 표시되어야합니다, 응용 프로그램을 다시 시작합니다 :
-
==============================
5.내가 설정 / application.rb에서 로거 수준을 설정하는 것을 선호합니다 :
내가 설정 / application.rb에서 로거 수준을 설정하는 것을 선호합니다 :
config.after_initialize do Rails.logger.level = (ENV['LOG_LEVEL'] || Logger::INFO).to_i end
생산에 내 ENV [ 'LOG_LEVEL는'] 로거 :: 정보의 값으로 설정됩니다 내 로컬 컴퓨터에이 로거 :: DEBUG 수 있습니다.
-
==============================
6.레일 6 일부터 시작하면 더 편리 접근 방식이있다 : 단순히 콘솔의 진정한 액티브 :: Base.verbose_query_logs을 = 추가하고 당신이 그것을 호출 한 모든 SQL 호출과 장소를 볼 수 있습니다. 더 많은 정보 https://guides.rubyonrails.org/debugging_rails_applications.html#verbose-query-logs
레일 6 일부터 시작하면 더 편리 접근 방식이있다 : 단순히 콘솔의 진정한 액티브 :: Base.verbose_query_logs을 = 추가하고 당신이 그것을 호출 한 모든 SQL 호출과 장소를 볼 수 있습니다. 더 많은 정보 https://guides.rubyonrails.org/debugging_rails_applications.html#verbose-query-logs
from https://stackoverflow.com/questions/2936000/how-to-show-sql-queries-run-in-the-rails-console by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 레일 - 데이터 - * 속성을 가진 LINK_TO 도우미 [중복] (0) | 2020.02.27 |
---|---|
[RUBY-ON-RAILS] 루트 도메인에 Heroku가 SSL (0) | 2020.02.27 |
[RUBY-ON-RAILS] form_for하지만 다른 행동에 게시 (0) | 2020.02.27 |
[RUBY-ON-RAILS] 최상의 루비 레일에 소셜 네트워킹 프레임 워크 [마감] (0) | 2020.02.27 |
[RUBY-ON-RAILS] 루비 마이크로 소프트 워드 (.DOCX) 문서 만들기 (0) | 2020.02.27 |