2013-04-25 2 views
0

У меня есть приложение, которое использует sqlite db, и в этой таблице есть записи. Теперь я должен изменить sqlite на postgres. Также изменяется и table design.Экспорт данных из sqlite в файл csv в rails

Если это та же конструкция стола, то я пошел бы использовать taps или сбросить данные с помощью yaml-db, а затем передать данные в Postgres, но в моем сценарии дизайн таблицы также меняется, но я хочу, чтобы переместить данные из sqlite для postgres в соответствии с новой таблицей.

Так что я думал об экспорте данных из sqlite в файл csv, а затем переместить данные из csv в postgres. Это то, что я должен делать, или есть ли другой способ сделать это? Если это так, то как я могу export to csv и import to postgres?

Другое дело, после экспорта данных из sqlite, есть ли способ проталкивать данные через migration? , пожалуйста, помогите мне.

ответ

1

Для экспорта в формате CSV просто добавьте в действие контроллера response_to для csv, а затем в соответствующей папке представления создайте файл .csv.erb для создания csv. Затем это можно вызвать, просто добавив CSV к URL-адресу.

Так что ваш контроллер будет что-то вроде этого:

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 не зависит от используемой базы данных.

 Смежные вопросы

  • Нет связанных вопросов^_^