2013-05-02 26 views
0

我有一個現在使用SQLite的應用程序。現在我將它改爲PostgreSQL。表結構已更改。但我想從前一個數據庫導入數據到新數據庫。從一個數據庫提取數據並將其保存在另一個軌道中

如何獲取數據並將其保存在新表中?

我嘗試了一些東西,比如從url獲取json並將數據保存在表中,但是我在解析json字符串時遇到了問題。所以我很困惑如何繼續。

回答

0

您可以使用模型中的方法將數據從sqlite導出到sql文件中。 這樣您可以更改表格列名稱,因爲表格結構已更改。在app/models/user.rb

sql_export方法:

class User < ActiveRecord::Base 
    def self.sql_export 
    filecontent = "" 
    User.all.each do |user| 
     filecontent << "INSERT INTO users (email, password) VALUES ('#{user.email}','#{user.password}');" 
    end 
    File.open("tmp/export.sql", "w+") do |f| 
    f.write(filecontent) 
    end 
end 

火起來軌控制檯和運行方法(確保您在環境中運行,它連接到SQLite數據庫):

$> rails c 
$ irb> User.sql_export 

它基本上讀取數據庫中的所有數據並生成插入語句並寫入tmp/export.sql文件。

然後,SQL文件導入到你的PostgreSQL

psql databasename < tmp/export 
0

我現在已經找到一種方法來解析JSON數據如下

url = "http://samplesite/export_data.json" 
     resp = Net::HTTP.get_response(URI.parse(url)) 
     data = resp.body 
     post_data = JSON.parse(data) 
     post_data.each do |value| 
      u = Model.new 
      u.field = value['name'] 
      u.save 
     end 

這可以用來從表中取數據,並可以相應地保存到另一個表中。

相關問題