我正在尝试在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 文档。
Heroku也不允许您创建或修改扩展。它们提供可供使用的可用扩展和文本搜索词典的列表,并列出架构转储中的所有扩展。
删除或注释掉架构转储中正在创建扩展和在扩展上创建注释的行代码,这应该可以消除该错误。