我有一個現在使用SQLite的應用程序。現在我將它改爲PostgreSQL。表結構已更改。但我想從前一個數據庫導入數據到新數據庫。從一個數據庫提取數據並將其保存在另一個軌道中
如何獲取數據並將其保存在新表中?
我嘗試了一些東西,比如從url獲取json並將數據保存在表中,但是我在解析json字符串時遇到了問題。所以我很困惑如何繼續。
我有一個現在使用SQLite的應用程序。現在我將它改爲PostgreSQL。表結構已更改。但我想從前一個數據庫導入數據到新數據庫。從一個數據庫提取數據並將其保存在另一個軌道中
如何獲取數據並將其保存在新表中?
我嘗試了一些東西,比如從url獲取json並將數據保存在表中,但是我在解析json字符串時遇到了問題。所以我很困惑如何繼續。
您可以使用模型中的方法將數據從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
我現在已經找到一種方法來解析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
這可以用來從表中取數據,並可以相應地保存到另一個表中。