我正在使用 PostgreSQL 和 ruby 和 rails 应用程序并安装了Postgres_copy
gem
https://github.com/diogob/postgres-copy
我有酒店表,想使用pg_copy_from
gem 函数导入文本文件。文件中的数据用“|”分隔 象征。
所以我创建了 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
什么都不会发生。可能是什么问题呢?
更新
我注意到,当我运行psql
并尝试通过\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 '|'})
,但我建议由于缺少关系而不会发生任何事情。