コンソールを使用して1つのコマンドですべてのデータベーステーブルの現在のレコード数を表示するにはどうすればよいですか?ありがとう!すべてのテーブル、コンソールのすべてのレコードを表示しますか?
6
A
答えて
14
すべてのあなたのクラスを「触れ」てきた場合、これが唯一の実際のモデルのため、それを行います。
ActiveRecord::Base.subclasses.map { |c| "#{c.name} => #{c.count}" }
あなたが本当にモデルにマッピングしていないテーブルを結合含め、すべてのテーブルをしたい場合:
ActiveRecord::Base.connection.tables.map { |t| "#{t} => " + ActiveRecord::Base.connection.execute("select count(*) from #{t}").fetch_row.first}
1
これは、あなたが望んでいたものよりも少し長くなるが、これは;-)
Dir.glob('app/models/*.rb').each {|file| puts eval(File.basename(file, ".rb").classify + '.count').to_s + " #{File.basename(file, ".rb").classify.pluralize}"}
このためのrakeタスクを作成する方がよいかもしれませんが役に立てば幸いかもしれません。
+0
こんにちはデイブ、おかげで役立つことを願ってこのため!私は特異なエラーを持っています - 私は 'Address'というモデルを持っていて、複数形のために 'NameError:unitialized constant Addres'というエラーを出しています。申し訳ありませんが、問題を解決するにはどうしたらいいですか? – sscirrus
16
ActiveRecord::Base.connection.tables
あなたはそれが役に立つ見つけた場合、これは、あなたが持っているテーブルの配列を返します。
0
私はこれをやろうとしていましたが、私は自分のやり方を考え出しました。
アクティブレコードモデルではありません、私がモデルに 呼び出された場合のメンテナンスカプセル化したいと私のモデルは
class Maintenance
def self.show_all_tables_count
list_table_with_count = []
ActiveRecord::Base.connection.tables.each do |table|
unless ['ar_internal_metadata', 'schema_migrations'].include?(table)
list_table_with_count << [name: table, count: table.singularize.camelize.constantize.count]
end
end
list_table_with_count
end
end
のように見える私は、これは
関連する問題
- 1. Futonはレコードを表示せず、CouchDBコンソールにすべてのレコードを表示します
- 2. 2つのテーブルを結合してすべてのレコードを表示
- 3. テーブルのすべてのデータを表示
- 4. 参照フィールドは、すべてのレコードを表示します
- 5. データベーステーブルからテーブルにすべてのレコード行を表示する方法
- 6. DataGridViewはすべてのレコードを表示しません
- 7. AJAXでテーブルからすべてのレコードを返します
- 8. 2つのテーブルを結合して1つのテーブルのすべてのレコードを表示するSQLクエリ
- 9. (Teradataバージョン) - すべてのレコードと、対応するすべてのレコードを別のテーブルに取得します。
- 10. Postgresユーザーはすべてのスキーマ/テーブルを表示します
- 11. あるテーブルのすべてのレコードと別のテーブルのすべてのレコードを比較する
- 12. すべてのページにRailsコンソールを表示する
- 13. RongコンソールのすべてのMongoidモデルを一覧表示
- 14. 操作を介してすべてのレコードを取得して表示する
- 15. Codeigniterデータベースからすべての重複レコードを取得して表示する
- 16. Boto3 Athenaがすべてのテーブルを表示していない
- 17. ASP.NET - AspNetUsersテーブルのすべてのユーザーをIDのドロップダウンリストに表示しますか?
- 18. SQL Serverインスタンス上のすべてのデータベース、すべてのテーブル、およびすべての列の一覧表示
- 19. AWS Redshiftコンソールのすべてのクエリが表示されない
- 20. AngularJS 1.x.x。アクティブなコントローラをすべてブラウザのコンソールに表示
- 21. 特定のフィールドを含むすべてのレコードを表示します。
- 22. テーブルからすべての単語を表示するmysqlクエリ
- 23. テーブルからすべてのデータを表示するには?
- 24. MySQLデータベースからすべてのテーブル名を表示する
- 25. 2つのテーブルを上に並べて表示し、2番目のテーブルをHTMLで浮かべます
- 26. MySQL:3つのテーブルからすべての行を表示
- 27. PostgreSQL - 翌月のすべてのレコードを表示
- 28. SQLクエリはすべてのレコードを表示していません
- 29. コンソールにすべてのプログラムが表示されない
- 30. アクセス2013マクロを使用してウェブデータベース内のすべてのレコードを表示
2番目のコマンドは私にMysqlエラー「あなたはSQL構文に誤りがあります...」という行為をしています。 – sscirrus
'references'はMySQLの予約語です(http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html)。 #{t}の周りに引用符やバッキングを置くとうまくいくでしょう。 –
PostgreSQLとRails 3.2.xの場合、2番目のステートメントを調整する必要がありました: 'ActiveRecord :: Base.connection.tables.map {| t | "#{t} =>" +アクティブレコード:Base.connection.execute( "select count(*)from#{t}")。first ['count']} ' –