1

我看到 IronRuby 团队已经记录了在 IronRuby 中使用 ActiveRecord 和 MSSQL - 他们表明需要对适配器进行一些调整。

8/11/2009 的采访中,Jimmy 指出 IronRuby 的一个主要缺点:

主要限制是 IronRuby 不支持任何基于 C 的 Ruby 库

这表明依赖于 sqlite.dll 的 SQLite-Ruby 库可能是不可能的。然而,在同一次采访中,他说:

对于数据库,您可以使用 SQLServer Express(免费)或任何基于 .NET 的数据库,例如最近的 csharp-sqlite 端口。

这听起来很有希望,但我对如何开始有点不知所措!如何将 Ruby 的 ActiveRecord 连接到 csharp-sqlite,或者我在哪里可以找到更多指导?

我发现了更多关于 IronRuby 和 SQLite的文章,但我可能需要一些翻译帮助?

当前的解决方案是移植 do_sqlite3 以使用所有 .NET API。有几个 SQLite 到 .NET 的端口,但还没有一个被广泛使用。对于 1.0,我们将有一个 ironruby-dbi gem,用于通过 Ruby DBI API 使用基于 .NET 的数据库;因此使用 SQLExpress 和 SQLServer 将与适当的 sqlserver 适配器一起使用。我不确定 DataMapper 是否有一个 do_sqlserver 适配器,但我们将把它留给社区去做。

这是否意味着我的技术堆栈可能类似于:ActiveRecord 使用 SQLiteRuby,SQLiteRuby 被调整为使用 ironruby-dbi(应该没有什么变化,因为这是 Ruby DBI API??)然后 ironruby-dbi 有智能使用基于 .NET 的数据库,例如 c#sqlite。当然,我需要一个适配器在 ActiveRecord 和 SQLiteRuby 之间进行传输……希望那里不需要更改?

建议、建议、提示?

4

2 回答 2

3

您将无法按原样使用 activerecord。

您可以为 SQLite 包装 ADO.NET 提供程序,或者您可以帮助 Ironruby-dbi 项目并提供正确处理 sqlite 的 dbi 适配器。从那时起,将它添加到 rails 就很容易了,因为它需要用 dbi 连接替换连接。

虽然这是一项正在进行的工作,目前大多数工作都围绕着 sql server,但我也想让 sqlite 在 IronRuby 上与 rails 正常工作。

另一种方法是更改​​ sqlite 的活动记录适配器以与 ADO.NET 提供程序一起使用(这可能需要最少的努力,但在 Rails 社区之外无济于事)。我很清楚需要发生什么才能使这一切正常工作,但不幸的是,我根本没有时间做所有这些事情。

于 2009-09-20T20:08:14.477 回答
0

您是否尝试过使用 SQLite 适配器?它可能开箱即用。

虽然我没有亲自尝试过。

于 2009-09-15T19:37:52.780 回答