0

現在、SQLite を使用するアプリがあります。そして今、それをPostgreSQLに変更しています。テーブル構造が変更されます。しかし、以前のデータベースから新しいデータベースにデータをインポートしたいと考えています。

データを取得して新しいテーブルに保存するにはどうすればよいですか?

URLからjsonを取得してテーブルにデータを保存するなど、いくつか試してみましたが、json文字列の解析に問題があります。なので、どうしようか迷っています。

4

2 に答える 2

0

モデルのメソッドを使用して、sqlite から sql ファイルにデータをエクスポートできます。このようにして、テーブル構造が変更されたため、テーブルの列名を変更できます。

の sql_export メソッドapp/models/user.rb:

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

Rails コンソールを起動し、メソッドを実行します ( SQLite データベースに接続する環境で実行していることを確認してください)。

$> rails c
$ irb> User.sql_export

基本的に、データベースからすべてのデータを読み取り、挿入ステートメントを生成してtmp/export.sqlファイルに書き込みます。

次に、sql ファイルを postgresql にインポートします。

psql databasename < tmp/export
于 2013-05-02T07:33:48.083 に答える
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

これを使用してテーブルからデータを取得し、それに応じて別のテーブルに保存できます。

于 2013-05-02T09:34:20.843 に答える