Добрый день всем! Хочу поинтересоватся может кто знает как в Ruby on Rails перенести данные из файла CSV в базу данных Mongodb или Mongoid таким способом чтобы таблицы CSV стали таблицами базы данных Mongodb!
Благодарю за помощь!
Ruby on Rails перенос данных из CSV в Mongodb
#2
Отправлено 07 сентября 2014 - 21:38
Находишь софтину, которая делает import/export в этих форматах и пробуешь (если такие есть).
Для MySQL на маке я, допустим, использую Sequel Pro. Она и .sql и .csv сразу дампит и можно потом импортировать, если надо.
Это от языка программирования, по-моему, слабо зависит. От БД. Поищи софтинку, короче.
Вначале делаю, потом думаю
#3
Отправлено 07 сентября 2014 - 22:00
Находишь софтину, которая делает import/export в этих форматах и пробуешь (если такие есть).
Для MySQL на маке я, допустим, использую Sequel Pro. Она и .sql и .csv сразу дампит и можно потом импортировать, если надо.
Это от языка программирования, по-моему, слабо зависит. От БД. Поищи софтинку, короче.
Благодарю за ответ! Но токой вариант мне не подходит, так как мне нужно сделать вэб апп в который можно будет upload csv файлы, из этих файлов программа должна закинуть каждый ряд в базу данных как отдельную запись, потом нужно сделать набор queries которые будут доставать нужные данные из этой базы данных и уже на основе этих данных создавать новые csv файлы. Так что мне нужно написать сваою софтину. Может кто знает как это лучше сделать? Нe как не получаеться uploaded фаил перикинуть в Mongodb.
#4
Отправлено 07 сентября 2014 - 22:12
А ну тогда это какой-нить gem. К примеру - https://github.com/t...lo/smarter_csv
Вначале делаю, потом думаю
#5
Отправлено 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]
Незнаю, не работает пока что!
Читать еще на тему: Ruby on Rails, Mongodb, CSV
Тематические форумы →
Software & Designing →
Программирование →
Mongodb, Mongoid как ускорить запись данных в MongodbАвтор темы: arthur1981, 23 сен 2014 Mongodb, Mongoid, Ruby |
|
|||
Тематические форумы →
Software & Designing →
Программирование →
Ruby on Rails generate CSV file form Mongoid dataАвтор темы: arthur1981, 15 сен 2014 Ruby on Rails, Ruby, Mongoid |
|
|||
Есть Ответ
Тематические форумы →
Software & Designing →
Программирование →
Ruby CSV merge rowsАвтор темы: arthur1981, 31 авг 2014 Ruby, CSV |
|