superuser ロールがないとエクステンションを作成できない
2023-12-02 09:52:44
質問
Djangoでユニットテストを実行しようとしているのですが、新しいデータベースが作成されます。このデータベースには postgis の拡張機能があり、定期的にデータベースを作成するときは "CREATE ExTENSION postgis" を使っています。
しかし、テストを実行すると、次のようなエラーが発生します。
$ ./manage.py test
Creating test database for alias 'default'...
Got an error creating the test database: database "test_project" already exists
Type 'yes' if you would like to try deleting the test database 'test_project', or 'no' to cancel: yes
Destroying old test database 'default'...
DatabaseError: permission denied to create extension "postgis"
HINT: Must be superuser to create this extension.
ユーザーはすでにDB作成権限を持っています。Ubuntu 12.04でPostgreSQL 9.1を使用し、Postgis 2.0を使用しています。
どのように解決すればよいですか?
postgisに関するDjangoのドキュメントに、ユーザ権限の設定に関する情報があります。 .
最悪の場合、新しいスーパーユーザを作成することができます。
$ createuser --superuser <user_name>
または既存のユーザーの役割を変更する。
postgres# ALTER ROLE <user_name> SUPERUSER;
関連
-
[解決済み] psql: FATAL: データベース "<user>" が存在しない
-
[解決済み] PostgreSQLのROLE(ユーザー)が存在しない場合、それを作成する
-
[解決済み] postgres: ユーザーをスーパーユーザーにアップグレードしますか?
-
[解決済み】PostgreSQLのエラーです。Fatal: ロール "username" が存在しません。
-
[解決済み] データベース レコードを削除するかしないか
-
[解決済み] データベースとファイルシステムストレージ
-
[解決済み] データベースに登録する電子メールアドレスの最適な長さは?
-
[解決済み] Postgresqlサーバーのpostgresという名前のデフォルトのデータベース
-
[解決済み] Django の ManyToMany リレーションシップと追加フィールド
-
Oracleの数値のデフォルトの精度とスケールは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] マスター・マスターとマスター・スレーブ、どちらのデータベース・アーキテクチャが良いのか?
-
[解決済み] リレーショナル・データベースにおけるカタログとスキーマの違いは何ですか?
-
[解決済み] Mavenプラグインを1回だけ実行する?
-
[解決済み] SQLITE SQLダンプファイルをPOSTGRESQLに変換する
-
[解決済み] DynamoDBからアイテム数を取得するには?
-
[解決済み] 正規化された電話番号をデータベースに格納するための規格はありますか?
-
[解決済み] Postgresqlサーバーのpostgresという名前のデフォルトのデータベース
-
[解決済み] 営業時間のデータベースへの格納
-
[解決済み] アイデンティファイとノンアイデンティファイの関係についてまだ混乱している
-
h:selectOneMenuのオプションをデータベースから入力する方法は?