PostgreSQL: DjangoでのPostgreSQLの使用

このドキュメントははじめにガイドの一部です。完全なガイドはこちらからご覧いただけます:PostgreSQLの始め方

👋 Stackhero ドキュメントへようこそ!

Stackhero では、信頼性と高速性を重視したフルマネージドの PostgreSQL クラウド サービスをご提供しています:

  • シームレスなスケーリングを実現する 無制限 の接続数とデータ転送。
  • 直感的なデータベース管理が可能な PgAdmin Web UI を標準搭載。
  • PostGISTimescaleDBPgVector などの人気 拡張機能を標準搭載
  • ワンクリックで簡単に行える アップデート により、常に安全で最新の状態を維持。
  • プライベートかつ専用インフラによる高い パフォーマンス と強固な セキュリティ

Stackhero の PostgreSQL クラウドホスティング は、数分でご利用を開始できます。信頼性の高いデータベース環境で、データ管理の手間を大幅に削減しましょう。

まだインストールされていない場合は、PostgreSQLに接続するために使用されるpsycopgモジュールをインストールします:

pip install psycopg

この初期ステップでは、パスワードを直接settings.pyファイルに保存します。この方法はテスト用であり、安全ではありません。このドキュメントの後半で、ベストプラクティスの例を見つけることができます。

settings.pyファイルを開き、次の設定を追加します:

DATABASES = {
  'default': {
    'ENGINE': 'django.db.backends.postgresql',
    'HOST': '<XXXXXX>.stackhero-network.com',
    'PORT': <PORT>,
    'OPTIONS': {
      'sslmode': 'require',
    },
    'NAME': 'admin',
    'USER': 'admin',
    'PASSWORD': '<ADMIN_PASSWORD>'
  }
}

注意:この例は本番環境には推奨されておらず、テスト目的のみです!

接続が機能したら、資格情報を保存するためのより安全な方法を採用できます。次の例では、django-environを使用し、資格情報を.envファイルに保存します。

  1. django-environをインストールします:

    pip install django-environ
    
  2. settings.pyファイルを開き、次のように変更します:

    import environ
    env = environ.Env()
    environ.Env.read_env()
    
    DATABASES = {
      'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'HOST': env('STACKHERO_POSTGRESQL_HOST'),
        'PORT': <PORT>,
        'OPTIONS': {
          'sslmode': 'require',
        },
        'NAME': 'admin',
        'USER': 'admin',
        'PASSWORD': env('STACKHERO_POSTGRESQL_ADMIN_PASSWORD')
      }
    }
    
  3. settings.pyと同じディレクトリに.envファイルを開くか作成し、次を追加します:

    STACKHERO_POSTGRESQL_HOST=<XXXXXX>.stackhero-network.com
    STACKHERO_POSTGRESQL_ADMIN_PASSWORD=<ADMIN_PASSWORD>
    
  4. 最後に、.env.gitignoreファイルに追加して、資格情報がGitリポジトリに保存されないようにします:

echo ".env" >> .gitignore