2013-02-22 3 views
0

я genereated в CSV-файл со столбцами ID, задачи, описание, created_at, updated_atRails: CSV Импорт

create_table "tasks", :force => true do |t| 
t.string "task" 
t.string "description" 
t.datetime "created_at", :null => false 
t.datetime "updated_at", :null => false 

Я открыл SQLite Konsole

rails db 
    .separator ',' 
    .C:/User/jkl/Desktop/tasks.csv 

Я получаю несоответствие типов данных ошибок. Я не заполнял created_at и updated_at, но это от rails до null => false.

Как вы импортируете?

ответ

3

Я обычно делаю это с помощью рубинового сценария:

require 'csv' 

def import 
    CSV.foreach('path/to/file.csv', :col_sep => ';', :headers => true) do |row| 
    Task.create!(row.to_hash) 
    end 
end 

Это работает при условии, ваши заголовки CSV совпадают ваши имена столбцов, например, так:

task;description 
"Task 1";"Paint the fence" 

Надежда, что помогает!

+0

Да выглядит хорошо. Поскольку мой Путь я заполнил абсолютный путь к моему csv-файлу. Он имеет такую ​​же грамматическую, как ваша, но она не импортирует. Я выполнил файл с ruby ​​import.rb – ubuseral

+1

Теперь я вижу, что вы используете окна. Ваш путь, вероятно, будет выглядеть как 'C: \\ User \\ jkl \\ Desktop \\ tasks.csv' –