我正在尝试在Heroku上运行我的应用程序,而且我无法通过'rake db:migrate'命令。 我一直收到这个错误: 耙子流产了! 发生错误,此操作和所有后续迁移都已取消:
PG ::错误:错误:必须是扩展程序plpgsql的所有者
有什么想法吗?
P.S。 这是完整的错误日志:http://pastebin.com/iYeiMD2y
答案 0 :(得分:5)
它正在尝试从您的架构填充数据库。问题是它正在尝试向您的数据库用户不拥有的postgresql扩展添加注释。这三行将导致问题:
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,并列出了模式转储中的所有扩展。
删除或注释掉架构转储中正在创建扩展并在扩展上创建注释的行代码,这些代码可以让您超越该错误。