Descargo de responsabilidad: soy el mantenedor de Sequel.
Sequel es fácil de usar junto con o en lugar de ActiveRecord cuando se utilizan los rieles. Tienes que configurar la conexión de la base de datos manualmente, pero aparte de eso, el uso es similar.Los archivos de modelo de Sequel se encuentran en la aplicación/modelos y funcionan de manera similar a los modelos de ActiveRecord.
Configurar las conexiones de la base de datos no es tedioso, generalmente es una línea en environment.rb para requerir secuela, y una línea en cada archivo de entorno (development.rb, test.rb, production.rb) para hacer algo como :
DB = Sequel.connect (...)
Así que es tedioso si se tiene en cuenta 4 líneas de código de configuración tediosa.
El uso de SQL sin procesar generalmente no es un problema a menos que esté apuntando a múltiples bases de datos. La razón principal para evitarlo es la mayor verbosidad. Sequel admite el uso de SQL sin formato al menos tan fácilmente como ActiveRecord, pero los tiempos en los que necesita utilizar SQL sin formato son bastante raros en Sequel.
BTW, Sequel se envía con múltiples complementos de validación. El complemento validation_class_methods es similar a las validaciones de ActiveRecord, utilizando métodos de clase. El complemento validation_helpers tiene una implementación más simple usando métodos de nivel de instancia, pero ambos pueden hacer más o menos lo mismo.
Por último, le diré que si ya tiene un código de ActiveRecord que hace lo que desea, probablemente no valga la pena el esfuerzo de portar el código a Sequel a menos que planee agregar características.
Espero no haber aparecido como anti-Sequel, por cierto: en realidad es mi opción preferida fuera de Rails. No veo mucho beneficio en el uso de las dos bibliotecas juntas, solo para obtener un poco de independencia adicional de la plataforma, incluso cuando el SQL necesario se vuelve complejo. Creo que es excesivo, especialmente si el desarrollador ya sabe lo que quiere escribir. ¡Volver a trabajar en ese tipo de SQL personalizado ciertamente no fue el problema más grande relacionado con la base de datos que tuve que enfrentar cuando tuve que hacer un puerto de MySQL a Oracle! –
¿Alguna sugerencia de hack sobre cómo obtener un objeto db de continuación de una conexión de registro activa? – fotanus