Làm cách nào để có danh sách tất cả các bảng được xác định cho cơ sở dữ liệu khi sử dụng bản ghi hoạt động?Làm thế nào để liệt kê tất cả các bảng được xác định cho cơ sở dữ liệu khi sử dụng bản ghi hoạt động?
Trả lời
Gọi ActiveRecord::ConnectionAdapters::SchemaStatements#tables
. Phương pháp này không có giấy tờ trong bộ điều hợp MySQL, nhưng được ghi lại trong bộ điều hợp PostgreSQL. SQLite/SQLite3 cũng có phương thức được triển khai, nhưng không có giấy tờ.
>> ActiveRecord::Base.connection.tables
=> ["accounts", "assets", ...]
Xem activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb:21
, cũng như việc triển khai ở đây:
Không biết về hồ sơ hoạt động, nhưng đây là một câu hỏi đơn giản:
chọn tên_bảng từ INFORMATION_SCHEMA.TABLES nơi TABLE_TYPE = 'CƠ SỞ TABLE'
Dường như không nên có một cách tốt hơn , nhưng đây là cách tôi giải quyết vấn đề của mình:
Dir["app/models/*.rb"].each do |file_path|
require file_path # Make sure that the model has been loaded.
basename = File.basename(file_path, File.extname(file_path))
clazz = basename.camelize.constantize
clazz.find(:all).each do |rec|
# Important code here...
end
end
Mã này giả định rằng bạn đang tuân theo quy ước đặt tên chuẩn cho các lớp và tệp mã nguồn.
Dựa trên hai câu trả lời trước đó, bạn có thể làm:
ActiveRecord::Base.connection.tables.each do |table|
next if table.match(/\Aschema_migrations\Z/)
klass = table.singularize.camelize.constantize
puts "#{klass.name} has #{klass.count} records"
end
để liệt kê mọi mô hình tóm tắt bảng, với số lượng bản ghi.
cho những người cuồng tín đơn dòng (không có sự bảo mật bổ sung của bảng regex): (ActiveRecord :: Base.connection.tables - ['schema_migrations']). Map {| t | "# {t.classify} có # {t.classify.constantize.count} bản ghi"} –
Tại sao bạn sử dụng regex tại đây? Sẽ không "tiếp theo nếu table == 'schema_migrations'" cũng hoạt động không? – tbreier
- 1. Làm thế nào để liệt kê tất cả các cơ sở dữ liệu MongoDB trong Node.js?
- 2. Psql liệt kê tất cả các bảng
- 3. Liệt kê tất cả các bảng trong cơ sở dữ liệu
- 4. Làm thế nào để liệt kê tất cả các hoạt động được ứng dụng tiếp xúc?
- 5. Làm cách nào để liệt kê tất cả các trình kích hoạt của cơ sở dữ liệu trong sqlite?
- 6. PostgreSQL: Làm thế nào để liệt kê tất cả các kiểu dữ liệu có sẵn?
- 7. Làm thế nào để lập trình liệt kê tất cả các thuộc tính được xác định?
- 8. Liệt kê thông tin về tất cả các tệp cơ sở dữ liệu trong SQL Server
- 9. Tôi có thể liệt kê tất cả các bảng trong cơ sở dữ liệu bằng Squirrel SQL bằng cách nào?
- 10. Có thể liệt kê tất cả các khoá ngoại trong cơ sở dữ liệu không?
- 11. Liệt kê tất cả các bảng hiện đang được xuất bản để sao chép MS-SQL
- 12. Làm cách nào để liệt kê (hoặc xuất) mã cho tất cả các trình kích hoạt trong cơ sở dữ liệu?
- 13. Liệt kê tất cả các chỉ mục
- 14. Làm thế nào để xóa tất cả các bảng trong cơ sở dữ liệu MySQL?
- 15. Làm thế nào để có được tất cả các tên bảng từ một cơ sở dữ liệu?
- 16. Liệt kê tất cả các kho SVN
- 17. Làm cách nào để liệt kê tất cả các hoạt động WCF đang thực thi?
- 18. Liệt kê tất cả các nhóm thư mục hoạt động
- 19. Làm cách nào để triển khai Cổng Dữ liệu Bảng khác với Bản ghi Hoạt động?
- 20. SQL Server - Tạo Trigger đơn chạy cho TẤT CẢ các bảng trong cơ sở dữ liệu
- 21. Làm thế nào để xác định cơ sở dữ liệu nào đang được sử dụng trên SQL Server 2000
- 22. Tôi cần sử dụng SQL nào để liệt kê tất cả các thủ tục được lưu trữ trên cơ sở dữ liệu Oracle?
- 23. Làm thế nào để thực hiện C# enum cho liệt kê char (1) trường cơ sở dữ liệu?
- 24. Làm cách nào để liệt kê/liệt kê tất cả các ứng dụng đã cài đặt trong Windows XP?
- 25. Làm cho Maven liệt kê tất cả các plugin được sử dụng?
- 26. Làm thế nào để xóa tất cả các cơ sở dữ liệu trên Postgres?
- 27. Sql Truy vấn để liệt kê tất cả các khung nhìn trong cơ sở dữ liệu SQL Server 2005
- 28. Cách liệt kê tất cả các môi trường được xác định trong ứng dụng Rails 3?
- 29. Làm cách nào để chèn bản ghi từ cơ sở dữ liệu mongo này vào cơ sở dữ liệu khác?
- 30. Học thuyết tự động tạo tất cả các bảng cơ sở dữ liệu?
Danh sách cũng bao gồm bảng 'schema_migrations'. Chỉ cần biết. Cảm ơn :) – imechemi