0
我把PostgreSQL Ruby和Rails应用程序,并有Postgres_copy
宝石安装 https://github.com/diogob/postgres-copy将数据从文本文件导入PostgreSQL。 “Postgres_Copy”宝石
我家表,并想用功能pg_copy_from
宝石导入文本文件。文件中的数据由“|”分隔符号。
所以我创建rake任务
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
,并尝试通过\d
命令来查看所有关系基本概念,它说:“没有找到关系。”
但是,我运行了rake:db:create:all
和rake db:migrate
命令,可以看到架构文件。另外,psql控制台中的\l
命令显示我的数据库。
也许会更容易只是运行
c = Hotel.connection.raw_connection
c.exec(%q{\copy hotels (hotel_id, name) FROM 'db/ActivePropertyList.txt' DELIMITER '|'})
,但我建议什么都不会发生,因为丢失的关系。