我有一个本地项目,有rails和postgres。我把它扔在我的AWS Amazon Linux AMI上。我在服务器上运行了rails和postgres的测试项目。但是,当我上传我的本地项目,并尝试运行
rake db:migrate
我收到以下错误:
ActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR: permission denied for relation schema_migrations
我看到了一些类似的问题,但没有一个有用。我确实有适当的角色设置和连接。
答案 0 :(得分:3)
我不确定您是否正在使用rake db:migrate
生成RAILS_ENV
作为生产或开发。无论它是什么(默认开发),在config / database.yml中它将说明它运行的用户,密码和数据库。该用户必须拥有ALL
表的public.schema_migrations
权限。如果确实如此,并且仍然无法正常工作,请确保该用户拥有public
架构的所有权限。
详细了解如何操纵postgres数据库权限here。 Postgres有很好的文档。
还有一件事:如果您在本地创建此数据库,并尝试创建初始数据库而不是实际运行迁移,请使用rake db:schema:load
而不是rake db:migrate
。 从不在生产中运行此功能,因为它会删除您的数据!