我正在尝试为我的某个应用程序添加数据库扩展,特别是fuzzystrmatch扩展。每当我尝试添加它时,我都会收到以下错误
-- execute("CREATE EXTENSION fuzzystrmatch") rake aborted! An error has occurred, this and all later migrations canceled:
PGError: ERROR: permission denied to create extension "fuzzystrmatch" HINT: Must be superuser to create this extension. : CREATE EXTENSION fuzzystrmatch
我发现成为超级用户的唯一目的是:
https://blog.engineyard.com/2012/postgresql-9-1-is-now-in-beta`
我不知道该怎么办?我ssh到数据库然后必须sudo执行命令?我发现的一切都非常无益。感谢任何帮助。
答案 0 :(得分:5)
免责声明:我是Engine Yard的DBA之一。
在Engine Yard上,您的应用程序的数据库用户帐户不是超级用户。但您确实可以访问超级用户帐户 - 只需使用“postgres”用户即可。显然,你只想将它用于管理任务,而不是在你的应用程序中使用它!
也就是说,Engine Yard已经提供了一种方法来为Postgres启用此扩展和其他扩展,如您链接的博客文章末尾所述。您可以使用厨师食谱自定义您的环境,我们提供食谱以在我们的自定义厨师回购中启用postgres扩展: https://github.com/engineyard/ey-cloud-recipes/tree/master/cookbooks/postgresql9_extensions
如果您已经在您的环境中使用自定义厨师食谱,那么应该直接进行设置 - 如果没有,我建议您从这里开始使用文档: https://support.cloud.engineyard.com/entries/21009867-Customize-Your-Environment-with-Chef-Recipes
如果您遇到任何问题,请打开机票我们很乐意提供协助!