0

我正在使用 PostgreSQL 和 ruby​​ 和 rails 应用程序并安装了Postgres_copygem https://github.com/diogob/postgres-copy

我有酒店表,想使用pg_copy_fromgem 函数导入文本文件。文件中的数据用“|”分隔 象征。

所以我创建了 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:allrake db:migrate可以看到架构文件。此外,\lpsql 控制台中的命令显示了我的数据库。

也许只是跑步会更容易

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

,但我建议由于缺少关系而不会发生任何事情。

4

1 回答 1

0

由于 PostgreSQL 常见的大写问题,我的导入失败。将所有标题字段和数据库列名重命名为小写就可以了。

于 2013-03-08T20:45:03.050 回答