Pregunta

Estoy trabajando en portar una aplicación Rails a JRUBY y HSQLDB. Mi objetivo es incorporar una base de datos y el sitio dentro de un solo archivo JAR para la implementación en los sitios de clientes. Tengo el sitio funcionando bastante bien desde el frasco, con algunos problemas notables.

Cuando hago lo siguiente con un modelo de Activerecord bastante mundano:

@total = SessionLog.count(:id)

Obtengo la siguiente excepción:

Activerecord :: DeclarationInvalid (Activerecord :: ActiverecOrderror: no en la función agregada o grupo por cláusula: org.hsqldb.expression@7be117eb en la declaración [seleccione Count (session_logs.id) como count_id de session_logs Where (creado_at> = '2010-02-- 06 'y creating_at <=' 2010-03-09 'y session_type =' tunnel_client ') Orden por id descar]:

Seleccione Count (session_logs.id) como count_id de session_logs donde (creating_at> = '2010-02-06' y creating_at <= '2010-03-09' y session_type = 'tunnel_client') orden por ID DESC)

Me parece claro que la declaración de recuento está causando el problema en HSQLDB, pero no estoy seguro de cuál es la solución para solucionar esto. SQLITE3 y MySQL procesan esta declaración SQL sin problemas.

Estoy abierto a usar una base de datos diferente que no sea HSQLDB, pero debe ser incrustable en nuestra aplicación en el JVM. Ese es el atractivo de HSQLDB.

¿Fue útil?

Solución

Probablemente haya encontrado un error en el adaptador Activerecord - activerecord-jdbchsqldb-adapter Asumo.

¿Puedes intentar ejecutar el SQL directamente en una sesión SQL no Ruby? Entonces, tal vez pueda ver a dónde va mal y enviar un error o (mejor), envíe un parche.

Otros consejos

Puedes probar Base de datos H2, cablearlo me gusta asi que. De Wikipedia:

El motor de la base de datos está escrito por Thomas Mueller. También desarrolló el motor de datos Java Hypersonic SQL [1]. En 2001, se detuvo el SQL hipersónico y se formó el grupo HSQLDB para continuar trabajando en el código SQL hipersónico. El nombre H2 significa HyperSonic 2, sin embargo, H2 no comparte ningún código con SQL hipersónico o HSQLDB. H2 está construido desde cero.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top