コンソールを使用して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. テーブルのすべてのデータを表示
- 3. AJAXでテーブルからすべてのレコードを返します
- 4. 2つのテーブルを結合して1つのテーブルのすべてのレコードを表示するSQLクエリ
- 5. RongコンソールのすべてのMongoidモデルを一覧表示
- 6. AWS Redshiftコンソールのすべてのクエリが表示されない
- 7. SQL Serverインスタンス上のすべてのデータベース、すべてのテーブル、およびすべての列の一覧表示
- 8. テーブルからすべての単語を表示するmysqlクエリ
- 9. テーブルからすべてのデータを表示するには?
- 10. MySQLデータベースからすべてのテーブル名を表示する
- 11. コンソールにすべてのプログラムが表示されない
- 12. 特定の文字で始まるすべてのテーブルを表示します
- 13. CodeIgniterの表示すべての重複レコードがビュー
- 14. ハイブ:テーブルのすべてのパーティションを表示する方法は?
- 15. PostgreSQLのすべてのテーブルをデータベースに表示するには?
- 16. テーブルからすべてのレコードを削除する
- 17. テーブルからすべてのレコードを削除する
- 18. テーブルからすべてのレコードを取得する - EclipseLink
- 19. phpmyadminのすべてのレコード
- 20. チェックされたすべてのチェックボックスの値をmysqlから表示し、テーブルに表示します
- 21. luasqlですべてのテーブル名を表示する方法
- 22. onmouseoverテーブル内のすべての行で同じデータを表示
- 23. Active Directoryテーブル内のすべてのプロパティを表示
- 24. データベース内のすべてのテーブルを一覧表示
- 25. 関連するすべてのレコードが文字列と等しいすべてのレコードを取得します。
- 26. コンソールは私のアサートメッセージをすべて傍受しています
- 27. すべてのタイムアウト/インターバルをjavascriptで表示しますか?
- 28. テーブルのすべてのフィールドで完全に一致しないすべてのレコードを取得するJOIN
- 29. 1つのクエリ、3つのテーブル、すべての行を左側のテーブルに表示しますか?
- 30. MYSQLはすべてのレコードを表示し、関連するレコードを数えます
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']} ' –