2014-10-09 71 views
0

我有一個任務,可以將舊數據從舊數據庫導入到新的Rails應用程序。舊程序在Delphi中創建並過時,所以客戶決定創建Rails應用程序來替換它。我有轉儲文件,我現在創建本地的MySQL數據庫,並在那裏插入過去8年的數據(MySQL已經工作了一個多小時):)Rails 4.從舊數據庫遷移(一些)舊數據庫數據到現有的數據庫DataBase

現在我不知道應該導入舊數據的方式。問題是舊的數據庫表和列的名稱與我在App中的名稱不同,並且存在許多未使用和不需要的列/表。所以我只需要選擇其中的一部分並插入到應用程序數據庫中。你能否建議這個案例的最佳解決方案?

預先感謝您!

回答

1

您可以調整舊的數據庫到Rails應用程序,並用它

工作,讓我們想象一下,你已經老了DB下表old_posts

old_posts 
________________________________________ 
sysid | name   | description  | 
_______________________________________ 
     |    |     | 
1  | The best post| Some description | 
_______________________________________ 
     |    |     | 
2  | Another post| Another descrip | 
________________________________________ 

在軌可以定義table_name在文檔 更多信息:

http://api.rubyonrails.org/classes/ActiveRecord/ModelSchema/ClassMethods.html#method-i-table_name

您也可以redifi http://api.rubyonrails.org/classes/Module.html#method-i-alias_attribute

要更改主鍵primary_key 更多信息DOC:NE與DOC alias_attribute 屬性的詳細信息 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應用程序數據庫

http://ilikestuffblog.com/2012/09/21/establishing-a-connection-to-a-non-default-database-in-rails-3-2-2/

+1

我沒有從第一次明白,但思前想後,我得到了主意,並且行之有效。謝謝! – Vla 2014-10-13 08:34:54