【发布时间】:2011-03-31 11:57:05
【问题描述】:
我正在使用 ruby 1.8.7 和 WATiR 测试一个 Web 应用程序,我想尽可能轻松地连接到 H2 数据库,我只能找到有关 JDBC 访问的信息。如果有一种方法可以使用 JRuby 从 Ruby 中执行此操作,那没关系,但我需要使用 Ruby 主要是因为我的 WATiR 代码是用它编写的,并且希望保持不变。
将考虑所有可能的解决方案,但我正在寻找一些简单的方法,因为我的数据库知识有限,我需要从 Ruby/WATiR 访问数据库(读取和写入)以测试 Web 前端显示的内容结束。
编辑:我消除了一些我的无知,现在我知道 JDBC 是用于 DB 访问的 Java API,所以我现在正在寻找任何方式来连接到 H2 数据库,以便我的 Ruby/WATiR 脚本可以访问它。
背景: 我对 DBI 和 Sequel gems 有一些经验,并且我安装了 Rails(所以我可以开始主要使用 ActiveRecord),但愿意学习新事物来解决这个问题。
假设我不是一个出色的 Java 程序员。我以前也从未研究过使用 JRuby,所以我并不完全熟悉它的工作原理。
解决方案 我最终让两人互相交谈,这主要归功于 Thomas Mueller 在下面的回答。我安装了 PostgreSQL ODBC 驱动程序,让 Sequel 工作并使用 ODBC 连接。使用 Sequel 的 PG 适配器连接到 H2 PG 服务器会导致一些我仍在处理的语法错误。我还没有尝试使用 DBI 进行连接,但我会尝试,因为它可以让我在需要时更好地控制语法。也非常感谢 Jeremy Evans 帮助解决了 activerecord-jdbc-adapter 和 Sequel(我的 ruby 路径中的 pg.rb 文件)之间的冲突,以及管理 Sequel。这没有作为答案列出,因此我可以在向与我处于相同情况的人提供反馈的同时,将表扬给那些回答的人。
我已经安装了 pg(不是 ruby-pg)、sequel、dbi、dbd-odbc(加上一个手动文件修复,你可以问我详细信息)、锄头,并卸载了 activerecord-jdbc-adapter。
【问题讨论】:
-
感谢您对解决方案的跟进和总结。这应该对与您处于相同情况的其他用户大有裨益。
标签: ruby database-connection jruby watir h2