Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 我们如何在Rails中读取MDB文件以将其转储到PostgreSQL中?_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 我们如何在Rails中读取MDB文件以将其转储到PostgreSQL中?

Ruby on rails 我们如何在Rails中读取MDB文件以将其转储到PostgreSQL中?,ruby-on-rails,ruby,Ruby On Rails,Ruby,在Ubuntu上,我使用dbtools通过终端命令读取*.mdb文件 是否有一个gem或方法可以让我使用Rails读取MDB文件 我想在Windows中运行相同的项目 我想将MDB转换为SQL文件,并将其转储到PostgreSQL。似乎您已经具备了编写这种gem所需的一切:) 在你前进的道路上除了痛苦什么都没有。我完全不支持的观点是,您最好的选择可能是使用基于JDBC的MS Access驱动程序或JDBC/ODBC桥的JRuby。这样,在两个平台上都有相同的工具集,并避免了大量其他问题——您只需

在Ubuntu上,我使用
dbtools
通过终端命令读取*.mdb文件

是否有一个gem或方法可以让我使用Rails读取MDB文件

我想在Windows中运行相同的项目


我想将MDB转换为SQL文件,并将其转储到PostgreSQL。

似乎您已经具备了编写这种gem所需的一切:)

在你前进的道路上除了痛苦什么都没有。我完全不支持的观点是,您最好的选择可能是使用基于JDBC的MS Access驱动程序或JDBC/ODBC桥的JRuby。这样,在两个平台上都有相同的工具集,并避免了大量其他问题——您只需要从Java访问MSAccess这一“正常”问题,虽然它比从Ruby访问要复杂

当然SQLite将是一个跨平台的选项,但我假设您必须使用MSAccess的具体原因

如果您的应用程序的数据需求非常简单,那么您可以通过将适当的mdbtools命令包装到适当的模型中或将其与自定义模块混合来实现所需的行为。但是哦,这会很痛苦,你不会得到任何ActiveRecord,虽然在这里这可能是好的

您所处的位置与任何使用新NoSQL数据库的人都相似——您将需要使用自己的数据库,并且使用更少的AR


祝你好运

我会使用不同的攻击

在Ubuntu主机上,加载PostgreSQL驱动程序和开发包,然后安装和gems

在那里编写一些代码来读取MDB文件,并使用Sequel通过网络直接连接到Postgres并直接插入记录

另一种方法是让Sequel将必要的SQL命令写入文件,或者使用CSV模块创建一个中间文件,然后将其导入PostgreSQL,但在我看来,这是浪费的中间步骤

您不需要从Rails执行此操作;我会完全避免使用Rails,因为它实际上不会为您的任务增加任何价值


如果您想利用ActiveRecord知识,您可以在Rails之外使用它,并让它直接从Ubuntu系统连接到Postgres。

此gem用于对Rails中MDB文件的只读访问:。我还没有尝试过。

Sequel使用WIN32OLE库连接到.mdb文件,这意味着您无法在非windows计算机上连接此文件