【问题标题】:IronRuby ActiveRecord and SQLiteIronRuby ActiveRecord 和 SQLite
【发布时间】:2009-09-15 19:22:35
【问题描述】:

我看到 IronRuby 团队记录了 using ActiveRecord in IronRuby with MSSQL - 他们表示需要对适配器进行一些调整。

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

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

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

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

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

我找到了更多write-up on IronRuby and SQLite,但我可能需要一些翻译帮助?

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

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

建议、建议、提示?

【问题讨论】:

标签: sqlite activerecord ironruby


【解决方案1】:

您将无法按原样使用 activerecord。

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

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

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

【讨论】:

  • 我喜欢第 3 个选项,因为我只对 IronRuby 用于桌面应用程序开发感兴趣。 Ruby 社区对一个好的 GUI 框架大惊小怪,我认为 IronRuby 可以很好地解决这个问题……但我只是感觉不到来自 ORM 的 .NET 方法的爱。你认为我应该学习基于 .NET 的 ORM 吗?谢谢。
  • 我发现 .NET OR/M 对 ironruby 很尴尬。原因是他们必须大量使用泛型等来做体面的工作,这需要 ruby​​ 语言的很多好处。我最喜欢的选择是让 sqlite 与 ironruby 一起使用,是将它集成到 ironruby-dbi 中。从那时起,您可以毫不费力地使用其中一个 ruby​​ 或/m。如果您在选择 2 或 3 时遇到困难,我可以为您提供帮助,否则您必须耐心等待其他人解决。
【解决方案2】:

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

虽然我没有亲自尝试过。

【讨论】:

  • 我该怎么做才能链接到开箱即用的 SQLite 适配器所依赖的较低级别的 ruby​​ Sqlite gem?谢谢。
  • 如果他们不在 IronRuby 中工作,则必须有人移植 SQLite ActiveRecord 适配器。这应该很容易,因为 SQLite 有一个与 SQL Server 库非常相似的 .Net 库(它在 IronRuby 中工作得很好,我已经尝试过了)。简而言之,如果 SQLite gem 不能在 IR 上运行,那么在 IronRuby on Rails 中使用 SQLite 将需要更多工作:)
  • 和你用过的SQL Server库类似的SQLite .Net库是什么?
  • 看起来 SQLite3/Ruby 已经移植到 IronRuby:github.com/jwthompson2/sqlite3-ironruby
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多