😊

ActiveRecordを用いて全テーブルのレコード数を取得する

2021/12/11に公開約500字

全テーブルのレコード数を取得したかったので、下記のようにActiveRecordを使って取得した

tables = ActiveRecord::Base.connection.tables

models = tables.map(&:classify).map(&:safe_constantize).compact

models.each do |model|
  puts "#{model}: #{model.count}"
end

ActiveRecord::Base.connection.tablesでテーブル名が入った配列を取得します
tables.map(&:classify)でテーブル名からモデル名へ変換
map(&:safe_constantize)で文字列をクラス化、クラスが見つからない場合はnilを返すのでcompactでnilを除外します

参考

Discussion

ログインするとコメントできます