Yak shaving logs


My life is just yak shaving.

[Rails] [小ネタ] インデックスを貼った方が良いカラムを教えてくれるRakeタスク

2017/09/06 #rails #gem

By Yusuke Takita


こんにちは。Takitaです。

インデックスを貼った方が良いカラムを一発で抽出する方法はないか探していると良さげなGemを見つけたので紹介します。

plentz/lol_dba

まずgemをインストールして、

$ gem install lol_dba

次のコマンドを実行すると・・・

$ lol_dba db:find_indexes

* TIP: if you have a problem with the index name('index name too long') you can solve with the :name option. Something like :name => 'my_index'.
* run `rails g migration AddMissingIndexes` and add the following content:


    class AddMissingIndexes < ActiveRecord::Migration
      def change
        add_index :users, :hoge_id
      end
    end

上記のように add_index :table_name, :column_id という形でインデックスを貼った方が良いものを出力してくれます!
あとは $ rails g migration AddMissingIndexes してコピペすればOKですね。

mysqlを使っているサービスで上記を実行したのですが、ソースをチラッと見る感じだと、mysql/sqlite/postgresのいずれでも大丈夫そうです。

https://github.com/plentz/lol_dba/blob/54cf692c25a8a694819952aeccf677d88450f824/lib/lol_dba.rb#L77

このエントリーをはてなブックマークに追加

categories


最新記事


tags