0

を使用するアプリがsqlite dbあり、そのテーブルにエントリがあります。今私はに変更sqliteする必要がありpostgresます。また、table designも変更されます。

それが同じテーブルデザインの場合taps、データを使用またはダンプしてyaml-dbからデータをpostgresにプッシュしますが、私のシナリオではテーブルデザインも変更されますが、に従ってデータをsqliteからpostgresに移動したい新しいテーブル。

そこで、データをファイルにエクスポートしてから、データを csv から postgres に移動することを考えsqliteましたcsv。これは私がしなければならない方法ですか、それとも他の方法はありますか? これが方法である場合、どうすれば私はできexport to csvますimport to postgresか?

もう1つのことは、sqliteからデータをエクスポートした後、データをプッシュする方法はありmigrationますか? 私を助けてください。

4

1 に答える 1

1

CSV 形式でエクスポートするには、コントローラー アクションに csv の Respond_to を追加し、一致するビュー フォルダーで .csv.erb ファイルを作成して csv を作成します。これは、URL に .csv を追加するだけで呼び出すことができます。

したがって、コントローラーは次のようになります。

def index
  @people = Person.all

  respond_to do |format|
    format.html # index.html.erb
    format.json { render json: @people }
    format.csv
  end
end

そして、ファイル (/app/views/people/index.csv.erb のようなもの) に保存されるビューには、以下が含まれます。

First Name,Last Name
<% @people.each do |p| %>
  <%= raw "\"#{p.first_name}\"" %>,<%= raw "\"#{p.last_name}\"" %>
<% end %>

このように CSV を作成することは、使用中のデータベースに依存しません。

于 2013-04-25T11:21:30.987 に答える