Перейти к содержимому

Фото
- - - - -

Ruby on Rails перенос данных из CSV в Mongodb

Ruby on Rails Mongodb CSV

  • Вы не можете создать новую тему
  • Please log in to reply
4 ответов в этой теме

#1 arthur1981

arthur1981
  • Новобранец
  • 14 сообщений

Отправлено 07 сентября 2014 - 20:51

Добрый день всем! Хочу поинтересоватся может кто знает как в Ruby on Rails перенести данные из файла CSV в базу данных Mongodb или Mongoid таким способом чтобы таблицы CSV стали таблицами базы данных Mongodb!
Благодарю за помощь!


  • 0

#2 Дык

Дык
  • Постоялец
  • 10 897 сообщений
  • Откуда:/dev/null

Отправлено 07 сентября 2014 - 21:38

Находишь софтину, которая делает import/export в этих форматах и пробуешь (если такие есть). 

Для MySQL на маке я, допустим, использую Sequel Pro. Она и .sql и .csv сразу дампит и можно потом импортировать, если надо. 

 

Это от языка программирования, по-моему, слабо зависит. От БД. Поищи софтинку, короче. 


  • 0

Вначале делаю, потом думаю :)


#3 arthur1981

arthur1981
  • Новобранец
  • 14 сообщений

Отправлено 07 сентября 2014 - 22:00

Находишь софтину, которая делает import/export в этих форматах и пробуешь (если такие есть). 

Для MySQL на маке я, допустим, использую Sequel Pro. Она и .sql и .csv сразу дампит и можно потом импортировать, если надо. 

 

Это от языка программирования, по-моему, слабо зависит. От БД. Поищи софтинку, короче. 

Благодарю за ответ! Но токой вариант мне не подходит, так как мне нужно сделать вэб апп в который можно будет upload csv файлы, из этих файлов программа должна закинуть каждый ряд в базу данных как отдельную запись, потом нужно сделать набор queries которые будут доставать нужные данные из этой базы данных и уже на основе этих данных создавать новые csv файлы. Так что мне нужно написать сваою софтину. Может кто знает как это лучше сделать? Нe как не получаеться uploaded фаил перикинуть в Mongodb.


  • 0

#4 Дык

Дык
  • Постоялец
  • 10 897 сообщений
  • Откуда:/dev/null

Отправлено 07 сентября 2014 - 22:12

А ну тогда это какой-нить gem. К примеру - https://github.com/t...lo/smarter_csv 


  • 0

Вначале делаю, потом думаю :)


#5 arthur1981

arthur1981
  • Новобранец
  • 14 сообщений

Отправлено 07 сентября 2014 - 23:04

А ну тогда это какой-нить gem. К примеру - https://github.com/t...lo/smarter_csv 

Я этот gem пробовал, но не могу rails заставить обрабатывать uploaded file и создавать с него базу данных, допустим этом джеме приводится пример

filename = '/tmp/some.csv'
n = SmarterCSV.process(filename, {:chunk_size => 100, :key_mapping => {:unwanted_row => nil, :old_row_name => :new_name}}) do |chunk|
      # we're passing a block in, to process each resulting hash / row (block takes array of hashes)
      # when chunking is enabled, there are up to :chunk_size hashes in each chunk
      MyModel.collection.insert( chunk )   # insert up to 100 records at a time
end

У меня контролер

def create
   
@filename = params[:filename]

    n = SmarterCSV.process(filename, {:key_mapping => {:unwanted_row => nil, :old_row_name => :new_name}}) do |array|
MyDatabase.create( array )
end
  end

И не работает, или мне нужно использовать 

MyModel.create( array.first )

Или уменя ошибка в передаче файла програме в этом коде

@filename = params[:filename]

Незнаю, не работает пока что!


  • 0