以下のプルリクがマージされてArproxy 0.2.0がリリースされ、Arproxyでプラグインが使えるようになった。
https://github.com/cookpad/arproxy/pull/6
arproxy-plugin-stdout
とりあえずサンプルプラグインを作ってみた。
https://github.com/winebarrel/arproxy-plugin-stdout
実装は以下の通り。
https://github.com/winebarrel/arproxy-plugin-stdout/blob/master/lib/arproxy/plugin/stdout.rb
module Arproxy::Plugin class Stdout < Arproxy::Base Arproxy::Plugin.register(:stdout, self) def execute(sql, name=nil) puts sql super(sql, name) end end end
使い方
RailsのGemfileにarproxyとプラグインを追加。
gem 'arproxy', '~> 0.2.0' gem 'arproxy-plugin-stdout', github: 'winebarrel/arproxy-plugin-stdout'
config/initializers/arproxy.rb
でプラグインをロード。
Arproxy.configure do |config| config.adapter = "mysql2" config.plugin :stdout end Arproxy.enable!
Railsを起動してアクセスすると標準出力にSQLが出力される。
$ bundle exec rails s => Booting WEBrick => Rails 4.2.1 application starting in development on http://localhost:3000 => Run `rails server -h` for more startup options => Ctrl-C to shutdown server [2015-05-12 00:42:34] INFO WEBrick 1.3.1 [2015-05-12 00:42:34] INFO ruby 2.0.0 (2014-10-27) [x86_64-darwin13.4.0] [2015-05-12 00:42:34] INFO WEBrick::HTTPServer#start: pid=28555 port=3000 Started GET "/items" for ::1 at 2015-05-12 00:42:37 +0900 SHOW TABLES LIKE 'schema_migrations' # ←これ SELECT `schema_migrations`.* FROM `schema_migrations` # ←これ ActiveRecord::SchemaMigration Load (0.3ms) SELECT `schema_migrations`.* FROM `schema_migrations` SHOW FULL FIELDS FROM `schema_migrations` # ←これ Processing by ItemsController#index as HTML SELECT `items`.* FROM `items` # ←これ Item Load (0.3ms) SELECT `items`.* FROM `items` SHOW FULL FIELDS FROM `items` # ←これ Rendered items/index.html.erb within layouts/application (4.3ms) Completed 200 OK in 300ms (Views: 288.8ms | ActiveRecord: 1.3ms)