Где мне поместить CSV-файл, который я использую для переноса данных? - PullRequest
0 голосов
/ 06 сентября 2010

Возможно, это дубликат, но я не смог найти никого, кто бы задавал вполне этот вопрос.

Насколько я понимаю *, если я хочу перенести данные из внешнего источника в базу данных моего приложения Rails, я должен сделать это с помощью миграции. Из моего предварительного исследования видно, что я мог бы использовать такой инструмент, как FasterCSV , чтобы проанализировать файл CSV (например) прямо в самом файле миграции (.rb).

Это правильный подход? И если да, то куда мне на самом деле поместить этот CSV-файл - кажется, что если миграция, в конце концов, подразумевает обратимость / повторяемость, то данные CSV должны храниться в стабильном месте.

* Дайте мне знать, если я полностью ошибаюсь в том, как вообще поступить так, поскольку я все еще новичок в RoR.

Ответы [ 2 ]

1 голос
/ 06 сентября 2010

Возможно, вы захотите заглянуть в seed_fu , чтобы управлять им.Преимущество заключается в возможности легко обновлять данные, уже находящиеся в базе данных.Вы можете преобразовать CSV в начальный файл, который представляет собой просто код Ruby (здесь приведен пример кода).

1 голос
/ 06 сентября 2010

Вы можете записать это на грабли без FasterCSV, хотя я использую оба.

Write rows to 'csvout' file.

outfile = File.open('csvout', 'wb')
CSV::Writer.generate(outfile) do |csv|
  csv << ['c1', nil, '', '"', "\r\n", 'c2']
  ...
end

outfile.close

Этот файл выведет туда, где записан файл rake. В вашем случае вы можете поместить его в отдельную папку для CSV. Лично я бы держал это вне остальной структуры приложения.

...