使用ActiveRecord将数据从MS Access DB导入MySQL数据库

时间:2017-07-18 07:01:30

标签: mysql ruby-on-rails ms-access activerecord database-migration

我正在构建一个Rails 5应用程序,它将取代基于Microsoft Access的解决方案,我需要将数据从Access导入到Rails应用程序的MySQL数据库中。

值得注意的是,我希望保留关系和默认值并将其反映在目标数据库中。

我已经看到了一些方法,但它们都是很老的解决方案。我希望能得到2017年的答案。

我认为可以做到的一种方法是将数据从MS Access导出到临时MySQL数据库,验证所有关系并验证数据是否全部存在。然后使用ActiveRecord将临时MySQL数据库中的数据导入Rails应用程序的MySQL数据库。我认为这会导致数据迁移,并意味着出现问题的可能性更小。

这是在正确的轨道上吗?或者有更好的方法可以做到这一点吗?

如果您需要更多信息,请与我们联系。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用mdb gem(链接:mdb gem for more detail

  1. 安装mdb gem

    group :development, :test do
      gem 'mdb'
    end
    
  2. 如何使用

    database = Mdb.open("app/assets/mdb/your_access_file.mdb")
    database.tables  
        # will list tables, for example you have table customer inside access
    @customers = database["customer"] 
        # this will put tables customer to activerecord model @customers
    @customers.last
    @customers.count
    
  3. 然后你可以使用activerecord命令通过循环或sql命令将它传送到你的mysql表

  4. 希望这有帮助。