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

2009年8月11日采访, 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,我们将使用Ruby DBI API使用Ironruby-DBI GEM,用于使用.NET基于.NET的数据库;因此,使用SQLEXPRESS和SQLSERVER将与适当的SQLServer适配器一起使用。我不确定是否有Do_SQLServer适配器适合DatamApper,但我们将把它留给社区进行。

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

建议、忠告、技巧?

有帮助吗?

解决方案

您将无法按原样使用 activerecord 。

您可以包装 SQLite 的 ADO.NET 提供程序,也可以帮助 IronRuby-dbi 项目并提供正确处理 SQLite 的 dbi 适配器。从那时起,将其添加到导轨上就变得很容易,因为需要将连接替换为 dbi 连接。

尽管这是一项正在进行的工作,目前大部分工作都围绕着 sql server,但我也想让 sqlite 在带有 Rails 的 IronRuby 上正常工作。

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

其他提示

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

我个人没试过。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top