ActiveRecordで全てのtable nameと全てのcolumn nameを得る
Get all table names
code:ruby
# <= 5.2
ApplicationRecord.connection.tables
# 5.2 <
ActiveRecord::Base.connection.tables
Get all columns of a table
code:ruby
ApplicationRecord.connection.columns('users').map(&:name)
ActiveRecord::Base.connection.columns('users').map(&:name)
# columns が返すのは Array<ActiveRecord::ConnectionAdapters::PostgreSQLColumn> のようなオブジェクト (PostgreSQLの場合)
# または以下
User.column_names
Get all columns of all tables
code:ruby
csv = CSV.generate(col_sep: "\t") do |csv|
ActiveRecord::Base.connection.tables.sort.each do |table_name|
ActiveRecord::Base.connection.columns(table_name).each do |column|
end
end
end
参考