0

Я использую PostgreSQL с рубином и рельсами приложения и имею Postgres_copy камня установлен https://github.com/diogob/postgres-copyИмпорт данных из текстового файла в PostgreSQL. «Postgres_Copy» Gem

У меня есть таблица гостиницы и хочу импортировать текстовый файл с помощью функции pg_copy_from камня. Данные в файле разделяются символом "|" символ.

Так что я создал грабли задачу

namespace :db do 
    namespace :import do 
    desc "Copy hotels records to the database" 
    task :hotels => :environment do 
     Hotel.pg_copy_from 'db/ActivePropertyList.txt', :delimiter => '|', :map => { 
     'HotelID' => 'ean_hotel_id', 
     'SequenceNumber' => 'sequence_number', 
     'Name' => 'name', 
     'Address' => 'address'} 
    end 
    end 
end 

Если я запускаю rake db:import:hotels ничего не происходит. В чем может быть проблема?

UPDATE

Я заметил, что когда я бегу psql и попытаться увидеть все realtions по \d команды, он говорит: «Не найдено ни отношений.»

Однако я выполнил команды rake:db:create:all и rake db:migrate и могу видеть файл схемы. Кроме того, команда \l в консоли psql показывает мою базу данных.

Может, было бы проще просто запустить

c = Hotel.connection.raw_connection 
c.exec(%q{\copy hotels (hotel_id, name) FROM 'db/ActivePropertyList.txt' DELIMITER '|'}) 

, но я полагаю, ничего не происходит из-за недостающих отношений.

ответ

0

Ошибка моего импорта из-за проблемы с верхним регистром, которая является общей для PostgreSQL. Переименование всех полей заголовков и имен столбцов базы данных в нижний регистр сделал трюк.

Смежные вопросы