# Django 6.0.7 ドキュメント

# `django.contrib.postgres`

PostgreSQL は、Django がサポートする他のデータベースにはない多くの機能を持っています。このオプショナルモジュールには、PostgreSQL 固有のデータ型のためのモデルフィールドとフォームフィールドが含まれています。

注釈

Django は、データベースに依存しないウェブフレームワークであり続けます。Django コミュニティ向けに再利用可能なアプリケーションを書く際には、実用的な範囲でデータベースに依存しないコードを書くことをお勧めします。ただし、Django を使って書かれた実際のプロジェクトがデータベースに依存しない必要はありません。実際、プロジェクトが一定規模に達すると、基盤となるデータストアを変更することはすでに大きな課題であり、データストア間の違いを処理するためにコードベースをいくつか変更する必要がある可能性が高くなります。

Djangoは、いくつかのデータ型をサポートしており、これらはPostgreSQLのみで動作します。たとえば、 `contrib.mysql` モジュールが存在しない理由は、PostgreSQLがサポートされているデータベースの中で最も機能が豊富であるため、そのユーザーが最も利益を得るからであり、それ以外に根本的な理由はありません。

- PostgreSQL 固有の集計関数
  - 汎用的な集計関数
  - 統計のための集計関数
  - 使用例
- PostgreSQL 固有のデータベース制約
  - `ExclusionConstraint`
- PostgreSQL 固有のクエリ式
  - `ArraySubquery()` 式
- PostgreSQL 固有のモデルフィールド
  - これらのフィールドにインデックスを付ける
  - `ArrayField`
  - `HStoreField`
  - 範囲フィールド
- PostgreSQL 固有のフォームフィールドとウィジェット
  - フィールド
  - ウィジェット
- PostgreSQL 固有のデータベース関数
  - `RandomUUID`
  - `TransactionNow`
- PostgreSQL 固有のモデルインデックス
  - `BloomIndex`
  - `BrinIndex`
  - `BTreeIndex`
  - `GinIndex`
  - `GistIndex`
  - `HashIndex`
  - `SpGistIndex`
  - `OpClass()` 式
- PostgreSQL 固有のルックアップ
  - trigram（トリグラム）類似度
  - `Unaccent`
- データベースのマイグレーション・オペレーション
  - マイグレーションを使って拡張機能を作成する
  - `CreateExtension`
  - `BloomExtension`
  - `BtreeGinExtension`
  - `BtreeGistExtension`
  - `CITextExtension`
  - `CryptoExtension`
  - `HStoreExtension`
  - `TrigramExtension`
  - `UnaccentExtension`
  - マイグレーションを使って照合順序 (collation) を管理する
  - インデックスの並列操作
  - 検証を強制しない制約を追加する
- 全文検索
  - `search` ルックアップ
  - `SearchVector`
  - `SearchQuery`
  - `SearchRank`
  - `SearchHeadline`
  - 検索設定を変更する
  - クエリを重み付けする
  - `Lexeme`
  - パフォーマンス
  - trigram（トリグラム）類似度
- バリデータ (Validator)
  - `KeysValidator`
  - 範囲バリデータ