我正在构建一个Rails 5应用程序,它将取代基于Microsoft Access的解决方案,我需要将数据从Access导入到Rails应用程序的MySQL数据库中。
值得注意的是,我希望保留关系和默认值并将其反映在目标数据库中。
我已经看到了一些方法,但它们都是很老的解决方案。我希望能得到2017年的答案。
我认为可以做到的一种方法是将数据从MS Access导出到临时MySQL数据库,验证所有关系并验证数据是否全部存在。然后使用ActiveRecord将临时MySQL数据库中的数据导入Rails应用程序的MySQL数据库。我认为这会导致数据迁移,并意味着出现问题的可能性更小。
这是在正确的轨道上吗?或者有更好的方法可以做到这一点吗?
如果您需要更多信息,请与我们联系。
谢谢!
答案 0 :(得分:0)
您可以使用mdb gem(链接:mdb gem for more detail
安装mdb gem
group :development, :test do
gem 'mdb'
end
如何使用
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
然后你可以使用activerecord命令通过循环或sql命令将它传送到你的mysql表
希望这有帮助。