目前正在尝试安装以在我的Mac(Yosemite)上运行Catarse
当我尝试运行rake db:create db:migrate db:seed
时,我收到以下消息:
ActiveRecord::StatementInvalid: PG::DuplicateObject: ERROR: role "admin" already exists
: CREATE ROLE admin NOLOGIN;
-- This script assumes a role postgrest and a role anonymous already created
GRANT usage ON SCHEMA postgrest TO admin;
GRANT usage ON SCHEMA "1" TO admin;
GRANT select, insert ON postgrest.auth TO admin;
GRANT select ON ALL TABLES IN SCHEMA "1" TO admin;
GRANT admin TO postgrest;
我尝试过以上但无济于事,现在它说我有一个重复的管理员角色。有人可以提供一些指导或帮助吗?
我花了大部分时间进行故障排除,并通过执行以下操作一次又一次地查看此内容:
卸载catarse
重新安装和卸载postgresql
尝试实现上述GRANT
命令
答案 0 :(得分:0)
似乎您已为数据库级别中的角色名称赋予了唯一约束。因此,请验证列是否具有uniq索引,或者是否在Role模型类中给出了唯一的验证,而您还没有给出!试图保存角色时的符号。我认为在数据库级别给出约束并不是一个很好的做法,它更好地指定模型级别本身的所有内容。否则会有自己的数据库服务异常,这些异常可能不会被ActiveRecord :: RecordInvalid异常捕获。