【Django × postgreSQL】テストプログラムでエラー発生!?「Got an error creating the test database: permission denied to create database」

Django

(最終更新月:2021年8月)

「テストプログラムはWebアプリ開発には不可欠!」とテストプログラム作成を意気揚々と進めていたところ、

Got an error creating the test database: permission denied to create database

というエラーに遭遇してしまいました。

調べてみると、テストプログラム自体のエラーではなく、Djangoで使用しているユーザーとデータベースの権限が原因でエラーが発生しているとのことがわかりました

使用しているデータベースにより解決方法は異なりますが、下記にてpostgreSQL ポスグレ使用時の解決策をご紹介していきます

筆者プロフィール

筆者プロフィールアイコン

【現職】プロマネ/システムプランニング

【副業】ブログ(月間7万PV)/YouTube/Web・アプリ制作

【元】外資系金融機関の営業

コミュニケーション × ビジネススキル × 文章力 × プログラミングスキルを活かし、30後半からのIT系職へシフト。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

ChatGPTでLINEボット

【今なら無料】ChatGPTでLINEボットを作りました!

友だち追加

【データベース作成権限をDjangoユーザーへ付加する】

解決策は、

ユーザーへデータベースの作成権限を付加すること!

順を追って方法を説明します

1)メインユーザーとしてデータベースへアクセスします

$ psql -U postgres -d postgres

2)Djangoで使用しているユーザーに権限を付加する

ALTER ROLE <Djangoユーザー> CREATEDB;

※<Djangoユーザー>の箇所をDjagnoで使用しているユーザー名へ変更します

例えば、「djangouser」というユーザー名の場合、

ALTER ROLE djangouser CREATEDB;

となります

3)データベースのリスタート

こちらはなくとも大丈夫かもしれませんが、念のためデータベースをリスタートしておきましょう(OSがubuntuの場合)

$ service postgresql restart

以上です!

「解決したよ!」という方も、「ちょっと探してた情報と違うよ!」という方にも、下記にて追加、補足の情報がございます!

【参考・補足】

MySQLを使用している場合は上記の方法とは異なりますのでご注意ください!

MySQLではsettings.pyに下記を追加する方法となります

DATABASES = {
    'default': {
        ...,
        'TEST': {
            'NAME': 'test_database',
        },
    }
}

そもそも「DjangoとpostgreSQLを連動させる方法がわからない!」という方はこちらをご覧ください!

✔当ブログは以下のような方に向けて書かれています

「Djangoでのアプリ開発を学びたい!」

「Djangoで開発したアプリをWebで公開するにはどうするの?」

✔当ブログ掲載の記事

  • Djangoで作る日報アプリ開発
  • WebアプリをWeb上に公開する方法
  • Webアプリ開発に必要なそのほかの情報
【Django】チュートリアル|日報アプリの開発から公開まで
Djangoのチュートリアルをお探しですか?具体的に「手を動かして作ってみたい!」という方へ向けて、誰でもできる簡易的な日報アプリの開発を通じて、Djangoの様々な機能に触れていくシリーズとなっています。PythonでWebアプリを作りたい方、必見の記事となります!

ITCブログにご協力いただける方は、以下もご検討いただけると嬉しいです。

ITCへ投げ銭をする

タイトルとURLをコピーしました