¿Cómo obtengo una lista de todas las tablas definidas para la base de datos cuando uso el registro activo?¿Cómo se enumeran todas las tablas definidas para la base de datos cuando se usa el registro activo?
¿Cómo se enumeran todas las tablas definidas para la base de datos cuando se usa el registro activo?
Respuesta
Llame ActiveRecord::ConnectionAdapters::SchemaStatements#tables
. Este método no está documentado en el adaptador MySQL, pero está documentado en el adaptador PostgreSQL. SQLite/SQLite3 también tiene el método implementado, pero no documentado.
>> ActiveRecord::Base.connection.tables
=> ["accounts", "assets", ...]
Ver activerecord/lib/active_record/connection_adapters/abstract/schema_statements.rb:21
, así como las implementaciones aquí:
no sabe acerca de registro activo, pero aquí es una simple consulta:
seleccione nombre_tabla de INFORMATION_SCHEMA.TABLES donde TABLE_TYPE = 'Base de mesa'
Parece que debe haber una mejor manera , pero aquí es cómo resolví mi problema:
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
Este código se supone que usted está siguiendo el modelo de convenio de nomenclatura estándar para las clases y los archivos de código fuente.
Sobre la base de las dos respuestas anteriores, se puede hacer:
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
para mostrar cada modelo que abstrae una tabla, con el número de registros.
para los fanáticos de línea única (sin la seguridad añadida de la coincidencia de tabla regex): (ActiveRecord :: Base.connection.tables - ['schema_migrations']). Map {| t | "# {t.classify} tiene # {t.classify.constantize.count} registros"} –
¿Por qué usa una expresión regular aquí? ¿No funcionaría igual si "next if table == 'schema_migrations'"? – tbreier
- 1. ¿Cómo se enumeran programáticamente todas las propiedades definidas?
- 2. Codeigniter: $ query-> free_result() cuando se usa el registro activo?
- 3. ¿Cómo se enumeran todas las vistas indizadas en SQL Server?
- 4. Renombrar todas las tablas en la base de datos
- 5. Lista de todas las tablas en la base de datos
- 6. ¿Cómo colocar todas las tablas en la base de datos sin soltar la base de datos?
- 7. ¿Cómo se truncan todas las tablas en una base de datos utilizando TSQL?
- 8. ¿Cómo se enumeran las pestañas en vim?
- 9. ¿Cómo se eliminan todas las restricciones de clave externa en todas las tablas?
- 10. Listar todas las tablas en una base de datos
- 11. Obtenga todas las tablas y todas las columnas de una base de datos odbc
- 12. ¿Cómo se maneja la gestión de la configuración de las tablas de la base de datos?
- 13. SQL Server - Crear un único disparador que se ejecuta para TODAS las tablas de la base de datos
- 14. ¿Cómo se evitan las funciones anidadas cuando se usa AJAX?
- 15. ¿Cómo se pueden reparar todas las tablas en todas las bases de datos desde el símbolo del sistema de MySQL cuando el archivo MYI está dañado o falta?
- 16. ¿Cómo se enumeran las funciones presentes en el archivo objeto?
- 17. ¿Cómo se usa la opción skip-name-resolve cuando se usa MySQLdb para Python?
- 18. ¿Cómo se mapea la memoria cuando se usa la horquilla?
- 19. Base de datos por aplicación VS Una gran base de datos para todas las aplicaciones
- 20. ¿dónde se encuentra mi base de datos cuando se usa mysql en rieles?
- 21. Cómo generar DDL para todas las tablas en una base de datos en MySQL
- 22. Cómo evitar las condiciones de carrera cuando se usa el método find_or_create de DBIx :: Class :: ResultSet?
- 23. Establecer IDENTITY_INSERT OFF para todas las tablas
- 24. ¿Cómo puedo crear una nueva base de datos SQLite, con todas las tablas, sobre la marcha?
- 25. Sqlite: ¿Cómo reinicio todas las tablas de la base de datos?
- 26. ¿Se usa para la base de datos de informes de phppgadmin?
- 27. Seleccionar de todas las tablas
- 28. Cómo colocar todas las tablas de la base de datos con manage.py CLI en Django?
- 29. Rol no existe y no se puede crear una base de datos cuando se usa PostgreSQL
- 30. ¿Cómo copiar un registro (activo) entre tablas, parcialmente?
La lista también incluye la tabla 'schema_migrations'. Solo ten en cuenta. Gracias :) – imechemi