【发布时间】:2015-02-15 12:15:21
【问题描述】:
我打算从 CSV 文件填充我的 PostgreSQL 数据库,但是当我这样做 rake db:seed 时,我收到了这个错误:
rake aborted!
ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR: could not open file "/home/spondbob/projects/rhsystem/db/data/doctors.csv" for reading: Permission denied
: COPY doctors(
name,
address,
phone,
field_id,
is_active,
email,
encrypted_password,
reset_password_token,
reset_password_sent_at,
remember_created_at,
sign_in_count,
current_sign_in_at,
last_sign_in_at,
current_sign_in_ip,
last_sign_in_ip)
FROM '/home/spondbob/projects/rhsystem/db/data/doctors.csv' WITH DELIMITER ',' CSV HEADER
/home/spondbob/.rvm/gems/ruby-2.1.5@rhsystem/gems/activerecord-4.1.8/lib/active_record/connection_adapters/postgresql/database_statements.rb:128:in `async_exec'
...
我不知道为什么它没有读取权限,我已经确定权限在那里并且数据库连接建立良好。这是文件权限:
$ ls -l db/data
total 56
-rwxr-xr-x 1 spondbob users 775 Dec 17 12:46 doctors.csv
...
还有我的seeds.rb 第一张桌子:
connection = ActiveRecord::Base.connection()
connection.execute("COPY doctors(
name,
address,
phone,
field_id,
is_active,
email,
encrypted_password,
reset_password_token,
reset_password_sent_at,
remember_created_at,
sign_in_count,
current_sign_in_at,
last_sign_in_at,
current_sign_in_ip,
last_sign_in_ip)
FROM '#{Rails.root.join('db','data')}/doctors.csv' WITH DELIMITER ',' CSV HEADER")
感谢任何帮助。谢谢。
【问题讨论】:
-
/home/spondbob/rhsystem也是世界可读/可执行的吗?如果其中任何部分不是,那么它将失败。 -
根文件夹实际上是
/home/spondbob/projects/rhsystem,我已经更正了。是的,它也有 r/x。 -
我刚刚发现用户
postgres无法访问/home/spondbob,即使我已将其放入群组users
标签: ruby-on-rails postgresql csv rake