1

アプリケーションの 1 つにデータベース拡張機能、具体的には 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 で実行する必要がありますか? 私が見つけたものはすべて非常に役に立たなかった. どんな助けでも感謝します。

4

1 に答える 1

5

免責事項: 私は Engine Yard の DBA の 1 人です。

Engine Yard では、アプリケーションの DB ユーザー アカウントはスーパーユーザーではありません。ただし、スーパーユーザー アカウントにはアクセスできます。代わりに「postgres」ユーザーを使用してください。明らかに、これをアプリケーション内からではなく、管理タスクにのみ使用したいでしょう!

とはいえ、Engine Yard は、リンクしたブログ投稿の最後に記載されているように、Postgres でこの拡張機能やその他の拡張機能を有効にする手段を既に提供しています。Chef レシピを使用して環境をカスタマイズできます。https ://github.com/engineyard/ey-cloud-recipes/tree/master/cookbooks/postgresql9_extensions にあるカスタム Chef リポジトリで postgres 拡張機能を有効にするレシピを提供してい ます。

環境でカスタム Chef レシピを既に使用している場合、その設定は簡単です。そうでない場合は、こちらのドキュメントから始めることをお勧めします: https://support.cloud.engineyard.com/entries/21009867-シェフのレシピで環境をカスタマイズ

このいずれかで問題が発生した場合は、チケットを開いてください。喜んでお手伝いします!

于 2013-03-15T11:54:36.540 に答える