在 Ubuntu 上,我使用dbtools
通过终端命令读取 *.mdb 文件。
是否有 gem 或方法可以让我使用 Rails 读取 MDB 文件?
我想在 Windows 中运行相同的项目。
我想将 MDB 转换为 SQL 文件并将其转储到 PostgreSQL。
在 Ubuntu 上,我使用dbtools
通过终端命令读取 *.mdb 文件。
是否有 gem 或方法可以让我使用 Rails 读取 MDB 文件?
我想在 Windows 中运行相同的项目。
我想将 MDB 转换为 SQL 文件并将其转储到 PostgreSQL。
似乎你已经拥有了编写这样一个 gem 所需的一切:)
在你前进的道路上,只有痛苦。我完全不支持的观点是,您最好的选择可能是带有基于 JDBC 的 MS Access 驱动程序或 JDBC/ODBC 桥的 JRuby。这样,您就可以在两个平台上拥有相同的工具集,并避免大量其他问题——您只是遇到了从 Java 访问 MSAccess 的“正常”问题,虽然这比从 MRI Ruby 更复杂,但它并不难。
当然 SQLite 将是一个跨平台的选项,但我假设您必须使用 MSAccess 的具体原因。
如果您的应用程序的数据需求非常简单,您可以通过将适当的 mdbtools 命令包装到适当的模型中或将它们与自定义模块混合来实现您需要的足够行为。但是,这会很痛苦,而且你不会得到任何 ActiveRecord,尽管这可能很好。
您与使用新 NoSQL 数据库的任何人都处于相似的位置——您需要自行开发,并且您将使用更少的 AR。
祝你好运
此 gem 用于只读访问 rails: activemdb中的 MDB 文件。我还没试过。
我会使用不同的攻击。
在您的 Ubuntu 主机上,加载 PostgreSQL 驱动程序和开发包,然后安装pg和Sequel gem。
在那里编写一些代码来读取MDB文件,并使用Sequel通过网络直接连接到Postgres并直接插入记录。
替代方法是让 Sequel 将必要的 SQL 命令写入文件,或者使用 CSV 模块创建一个中间文件,然后将其导入 PostgreSQL,但在我看来,这是一个浪费的中间步骤。
您不需要从 Rails 执行此操作;我会完全避免使用 Rails,因为它确实不会为您的任务增加任何价值。
如果你想利用你的 ActiveRecord 知识,你可以在 Rails 之外使用它,并让它直接从 Ubuntu 系统连接到 Postgres。