patorashのブログ

方向性はまだない

カラムだけでなく、テーブルにもコメントを追加する

DBのカラムにコメントを追加するシリーズ、いよいよ最後。 テーブルにもコメントを付けていきます。

今までの記事はこちら。

patorash.hatenablog.com

patorash.hatenablog.com

patorash.hatenablog.com

patorash.hatenablog.com

テーブルを抽出する

テーブルの抽出は今までもやっていたので簡単ですが、とりあえずbin/rails consoleから。

tables = ApplicationRecord.connection.tables

次に、このデータを元に、マイグレーション用のコードを書かせます。

tables.each { |table| puts "change_table_comment(:#{table}, from: nil, to: '')" }; nil

上記を実行すると、以下のような文字列が出力されます。(テーブル名はダミーです)

change_table_comment(:users, from: nil, to: '')
change_table_comment(:posts, from: nil, to: '')
change_table_comment(:tags, from: nil, to: '')
change_table_comment(:post_tags, from: nil, to: '')
# 以降、テーブル・ビューの数だけズラズラと…

出力された文字列をコピーしておきます。

マイグレーションファイルを作る

とりあえず生成。

bin/rails g migration AddTableComments

書いていく

さきほどrails consoleで出力させたコードをペーストします。

class AddTableComments < ActiveRecord::Migration[6.0]
  def change
    change_table_comment(:users, from: nil, to: '')
    change_table_comment(:posts, from: nil, to: '')
    change_table_comment(:tags, from: nil, to: '')
    change_table_comment(:post_tags, from: nil, to: '')
    # 以降、テーブル・ビューの数だけズラズラと…    
  end
end

あとは、上記のコードのto: ''のところに、コメントを書いていくだけ!!👍

実行する

いざ、実験

bin/rails db:migrate

確認するには、bin/rails dbconsolepsqlを起動します(PostgreSQLの場合)。そして\dt+を実行してみてください。

f:id:patorash:20210305073945p:plain

バッチリ、テーブルにもコメントが追加されていきました😁

まとめ

今回も、コードにコードを書かせることで楽ができました。また、テーブルにもコメントを付けることで、なんのために追加されたテーブルなのかがわかりやすくなりました。Railsを触る人にとってはモデルを見ればわかる内容であっても、DBしか触る機会がない人にとっては、有用な情報だと思います。

開発メンバーには、「とりあえずこれで一旦、データベースにコメントを追加するのは終わり」と伝えて、現状のコメントでは意味がよくわからないものがあったら、質問してもらって都度コメントを更新するようにしていく、という方針にしました。

プロジェクトに関わるメンバーの情報格差をなくしていくぞ!💪