DBのカラムにコメントを追加するシリーズ、いよいよ最後。 テーブルにもコメントを付けていきます。
今までの記事はこちら。
テーブルを抽出する
テーブルの抽出は今までもやっていたので簡単ですが、とりあえず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 dbconsole
でpsqlを起動します(PostgreSQLの場合)。そして\dt+
を実行してみてください。
バッチリ、テーブルにもコメントが追加されていきました😁
まとめ
今回も、コードにコードを書かせることで楽ができました。また、テーブルにもコメントを付けることで、なんのために追加されたテーブルなのかがわかりやすくなりました。Railsを触る人にとってはモデルを見ればわかる内容であっても、DBしか触る機会がない人にとっては、有用な情報だと思います。
開発メンバーには、「とりあえずこれで一旦、データベースにコメントを追加するのは終わり」と伝えて、現状のコメントでは意味がよくわからないものがあったら、質問してもらって都度コメントを更新するようにしていく、という方針にしました。
プロジェクトに関わるメンバーの情報格差をなくしていくぞ!💪