Быстрое решение для заполнения создать и заполнить таблицу БД с данными из CSV-файла - PullRequest
2 голосов
/ 29 декабря 2011

Как в заголовке. Я хочу создать таблицу в моей базе данных, а затем заполнить ее записями из моего файла csv (tab is ";").Там записи (и вся таблица) не будут обновляться или изменяться кем-либо.Мне просто нужно создать БД (только Postgres) с этими записями.Я хочу позже взять случайно из этой таблицы некоторые записи.Какие-нибудь советы?Или, может быть, лучше выбрать случайные записи непосредственно из CSV-файла instad из db?Пожалуйста, помогите

1 Ответ

2 голосов
/ 29 декабря 2011

Вы можете создать инструмент командной строки, который читает ваш файл cvs и использовать ActiveModel для связи с базой данных. В этом случае вы создаете свою модель и базу данных так же, как и в любом другом приложении rails.

Чтобы прочитать файл cvs, вы должны сделать следующее:

require 'csv'

CSV.foreach(fileName, :headers => true, encoding: "UTF-8") do |row|
  row['myfiled'].to_s
end

Вам нужен гем CSV, и вы должны заменить myfield именем столбца, который вы хотите использовать. Если у вас есть данные в ruby, вы создаете свои модели, как если бы вы использовали рельсы. Поместите определения в тот же файл или используйте для ссылки на ваши модели.

В качестве альтернативы вы можете просто прочитать файл cvs и случайным образом решить, хотите ли вы использовать данные. В этом случае вам не нужно помещать его в базу данных.

...