Reestructuración modular integral de servicios, reorganización de gestión en docs/ y limpieza profunda del repositorio
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
#!/usr/bin/env ruby
|
||||
# frozen_string_literal: true
|
||||
|
||||
# tools/prueba_simple_buscador.rb — Prueba simplificada del sistema de búsqueda
|
||||
# ================================================================================
|
||||
# Prueba básica del sistema de búsqueda para identificar problemas
|
||||
|
||||
require 'pg'
|
||||
require 'yaml'
|
||||
|
||||
# Cargar configuración
|
||||
config_path = File.join(__dir__, 'config', 'database.yml')
|
||||
config = YAML.load_file(config_path)['development']
|
||||
|
||||
# Conectar a PostgreSQL
|
||||
puts "🔌 Conectando a PostgreSQL..."
|
||||
conn = PG.connect(
|
||||
host: config['host'],
|
||||
port: config['port'],
|
||||
dbname: config['database'],
|
||||
user: config['username'],
|
||||
password: config['password']
|
||||
)
|
||||
|
||||
puts "✅ Conexión establecida\n\n"
|
||||
|
||||
# Prueba 1: Consulta SQL simple
|
||||
puts "1. Consulta SQL simple (entradas):"
|
||||
resultados = conn.exec("SELECT id, descripcion, estado FROM bitacoras.entradas LIMIT 3")
|
||||
resultados.each do |row|
|
||||
puts " • #{row['id']}: #{row['descripcion'][0..50]}... (#{row['estado']})"
|
||||
end
|
||||
|
||||
# Prueba 2: Búsqueda con LIKE
|
||||
puts "\n2. Búsqueda con LIKE 'dashboard':"
|
||||
resultados = conn.exec_params(
|
||||
"SELECT id, descripcion, estado FROM bitacoras.entradas WHERE descripcion ILIKE $1 LIMIT 3",
|
||||
['%dashboard%']
|
||||
)
|
||||
if resultados.ntuples > 0
|
||||
resultados.each do |row|
|
||||
puts " • #{row['id']}: #{row['descripcion'][0..50]}... (#{row['estado']})"
|
||||
end
|
||||
else
|
||||
puts " • No se encontraron resultados"
|
||||
end
|
||||
|
||||
# Prueba 3: Consulta con JOIN
|
||||
puts "\n3. Consulta con JOIN (entradas + nodos):"
|
||||
sql = <<-SQL
|
||||
SELECT e.id, e.descripcion, e.estado, n.nombre as nodo_nombre
|
||||
FROM bitacoras.entradas e
|
||||
LEFT JOIN bitacoras.nodos n ON e.nodo_id = n.id
|
||||
WHERE e.estado = '✅'
|
||||
LIMIT 3
|
||||
SQL
|
||||
|
||||
resultados = conn.exec(sql)
|
||||
if resultados.ntuples > 0
|
||||
resultados.each do |row|
|
||||
puts " • #{row['id']}: #{row['descripcion'][0..50]}... (#{row['estado']}) - Nodo: #{row['nodo_nombre']}"
|
||||
end
|
||||
else
|
||||
puts " • No se encontraron entradas completadas"
|
||||
end
|
||||
|
||||
# Prueba 4: Full-text search (si existe el índice)
|
||||
puts "\n4. Probando full-text search:"
|
||||
begin
|
||||
# Primero verificar si existe la extensión
|
||||
conn.exec("CREATE EXTENSION IF NOT EXISTS pg_trgm")
|
||||
|
||||
# Búsqueda simple con trigram
|
||||
resultados = conn.exec_params(
|
||||
"SELECT id, descripcion, estado FROM bitacoras.entradas WHERE descripcion % $1 LIMIT 3",
|
||||
['sistema']
|
||||
)
|
||||
|
||||
if resultados.ntuples > 0
|
||||
puts " • Búsqueda trigram encontrada #{resultados.ntuples} resultados"
|
||||
resultados.each do |row|
|
||||
puts " - #{row['id']}: #{row['descripcion'][0..50]}..."
|
||||
end
|
||||
else
|
||||
puts " • No se encontraron resultados con trigram"
|
||||
end
|
||||
rescue => e
|
||||
puts " • Error en full-text search: #{e.message}"
|
||||
end
|
||||
|
||||
# Prueba 5: Estadísticas
|
||||
puts "\n5. Estadísticas de la base de datos:"
|
||||
tablas = ['nodos', 'bitacoras', 'temas', 'entradas']
|
||||
tablas.each do |tabla|
|
||||
count = conn.exec("SELECT COUNT(*) as total FROM bitacoras.#{tabla}")[0]['total']
|
||||
puts " • #{tabla}: #{count} registros"
|
||||
end
|
||||
|
||||
conn.close
|
||||
puts "\n🔌 Conexión cerrada"
|
||||
puts "\n✅ Prueba completada"
|
||||
Reference in New Issue
Block a user