私はこのようなdeclaredでPostgresの機能gen_random_bytes
、呼び出す、projectを持っている:それは限り、私は私のローカルマシン上で使用されるように、うまく働いたHerokuの「言語Cの許可が拒否されました」エラーを回避するにはどうすればよいですか?
CREATE OR REPLACE FUNCTION core.gen_random_bytes(integer) RETURNS bytea AS '$libdir/pgcrypto', 'pg_random_bytes' LANGUAGE c STRICT;
を。
[WARNING ] CREATE OR REPLACE FUNCTION core.gen_random_bytes(integer) RETURNS bytea AS '$libdir/pgcrypto', 'pg_random_bytes' LANGUAGE c STRICT
ERROR: permission denied for language c
私がコマンド
を使用することをお勧めします別の answerを、見つけCで関数を宣言することができる唯一のスーパーのように思える:私は次のエラーを取得する - しかし、私はHerokuの上でその関数を作成することはできませんよUPDATE pg_language SET lanpltrusted = true WHERE lanname LIKE 'c';
私はどちらか、そのコマンドの権限がありません。
ERROR: permission denied for relation pg_language
SQL state: 42501
どのように私はHerokuの上の私のコードの仕事を得ることができますか? Postgresの言語で
- 書き換え
core.gen_random_bytes
:は、私は、少なくとも以下のオプションがあります。
core.gen_random_bytes
の既存の代替手段を使用します。これには、スーパーユーザー権限は必要ありません。- 今の私にスーパーユーザの権限を与える別のホスティングプロバイダにHerokuのから切り替えて、(例えばデジタルオーシャンなどアマゾンEC2)
、私はこのプロジェクトのプロトタイプを作成しています。私が言及しなかったものを含む、最も簡単なオプションはどれですか?
「pgcrypto」拡張機能を使用できますか:https://devcenter.heroku.com/articles/heroku-postgres-extensions-postgis-full-text-search? 'gen_random_bytes'関数があるようです(使用しているものと同じです) – matt