我有一项任务是将旧数据从旧数据库导入新的Rails应用程序。旧程序是在Delphi中创建的,已经过时,所以客户决定创建rails应用程序来替换它。我有转储文件,我现在正在创建本地MySQL数据库并插入最近8年的数据(mysql已经工作了一个多小时):))
现在我不确定应该导入旧数据的方式。问题是旧的db表和列的名称与我在App中的名称不同,并且有许多未使用和不需要的列/表。所以我需要只选择其中一些并插入App DB。你能否为这个案例提出最佳解决方案?
提前谢谢!
答案 0 :(得分:1)
您可以将旧数据库调整为rails应用程序并使用它
让我们假设您的旧数据库包含以下表格old_posts
old_posts
________________________________________
sysid | name | description |
_______________________________________
| | |
1 | The best post| Some description |
_______________________________________
| | |
2 | Another post| Another descrip |
________________________________________
在rails中,您可以定义table_name
doc:
http://api.rubyonrails.org/classes/ActiveRecord/ModelSchema/ClassMethods.html#method-i-table_name
您还可以使用alias_attribute
重新定义属性
doc中的更多信息:
http://api.rubyonrails.org/classes/Module.html#method-i-alias_attribute
更改主键primary_key
doc中的更多信息:
http://api.rubyonrails.org/classes/ActiveRecord/AttributeMethods/PrimaryKey/ClassMethods.html#method-i-primary_key-3D
示例似乎是
class Post < ActiveRecord::Base
self.primary_key = 'sysid'
self.table_name = 'old_posts`
alias_attribute :name, :title
alias_attribute :description, :content
end
然后你可以调用:
p = Post.find(1)
p.title #= > The best post
您也可以从rails app数据库中单独使用旧数据库