我正在尝试在 Heroku 上运行我的应用程序,但无法通过“rake db:migrate”命令。 我不断收到此错误: 耙子中止! 发生错误,此迁移和所有后续迁移均已取消:
PG::错误:错误:必须是扩展 plpgsql 的所有者
有什么想法吗?
附: 这是完整的错误日志:http://pastebin.com/iYeiMD2y
最佳答案
它正在尝试从您的架构填充数据库。问题是它试图向您的数据库用户不拥有的 postgresql 扩展添加注释。这3行会导致问题:
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
COMMENT ON EXTENSION pg_trgm IS 'text similarity measurement and index searching based on trigrams';
COMMENT ON EXTENSION unaccent IS 'text search dictionary that removes accents';
为了评论任何数据库对象,您需要成为该对象的所有者。请参阅PostgreSQL documentation了解更多信息。
Heroku 也不允许您创建或修改扩展。他们提供了list of available extensions and text-search dictionaries可供使用,并且列出了架构转储中的所有扩展。
删除或注释掉模式转储中正在创建扩展并在扩展上创建注释的行代码,这样您就可以克服该错误。
关于ruby-on-rails-3 - Heroku rake 数据库 :migrate aborted with 'PG::Error:' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14546037/