コンテンツにスキップ

PostgreSQLサービス

pg_service.confファイルにより、PostgreSQLサーバ接続に名前付きエイリアスを使用することができます。ホスト名、ポート、データベース名などをQGIS Projectファイルに格納する代わりに、これらを個別に格納することができます。ユーザー名とパスワードをpg_service.confファイルに保存して、QGIS Projectに平文で保存されるのを防ぐこともできます。

PostgreSQLサービスについては、QGISドキュメントを参照してください。

QField - 直接接続

QGISからデータベースに直接接続する場合、QFieldのデータフォルダにpg_service.confファイルを置くことで利用することができます。ファイルは内部デバイスストレージまたはSDカードストレージのいずれかに置くことができます。QFieldのデータフォルダのパスは、アプリのQFieldについて画面の下にあります。

通常、Androidデバイスのパスは次のようになります: Android/data/ch.opengis.qfield/files/QField.

備考

.pg_service.confというファイル名の*NIXシステムとは異なり、Androidのファイル名はpg_service.confで、先頭のドット記号(.)はありません。

QFieldCloud

QFieldCloudはpg_service.conf設定もサポートしています。"オフライン編集"クラウドアクションでPostgreSQLレイヤーを構成し、QFieldCloudプロジェクトのSecretsページにサービス設定を保存する必要があります。

QFieldCloudドキュメントのPostgreSQLサービスの設定方法を参照してください。

QGISとシークレットキーを使用してPostgreSQLに接続するためのpg_service.confファイルの作成

始める前に、PostgreSQLデータベースがQFieldCloudからの接続を許可していることを確認してください。技術仕様を参照してください。

pg_service.confファイルのセットアップ

最初に設定ファイルを作成する必要があります。PostgreSQLドキュメントを参照するか、以下の説明に従ってください。

  1. 設定ファイルを作成する:

  2. Windowsの場合: pg_service.confという名前のファイルを作成し、使いやすい場所に保存します。

  3. Linux/MacOS/Unixの場合: ホームフォルダ (~) に .pg_service.conf という名前のファイルを作成します。

  4. 接続パラメータを定義する:

ファイル内で、PostgreSQLデータベースの接続パラメータを以下の書式で指定します:

[SERVICE_NAME]
host=your_host_or_ip
port=your_port
dbname=your_database_name
user=your_username
password=your_password

プレースホルダー (your_host_or_ipyour_portyour_database_nameyour_usernameyour_password) を実際の接続情報に置き換えて、ファイルを保存します。

パラメータ
パラメータ

Windows用の追加設定手順

  1. 環境変数の設定: QGISがpg_service.confを認識するようにするには、その場所を指す環境変数を作成します:

  2. 「このPC」または「マイコンピュータ」>「プロパティ」>「詳細システム設定」>「環境変数」に移動します。

  3. 新しい変数を追加する:
    • 変数名: PGSERVICEFILE
    • 変数の値: C:\Users\<YourUsername>\AppData\Roaming\postgresql\pg_service.conf (または pg_service.confのファイルパス).

また、QGISの「設定」>「オプション」>「システム」>「環境」で環境変数を直接設定することもできます。詳しくはQGISシステム設定を参照してください。

QGISシステム環境変数
QGISシステム環境変数

  1. QGISで接続をテストする: QGIS を開き、接続の詳細で pg_service.conf で定義されているサービス名(例:[MY_QGIS_DB])を使用して新しい PostgreSQL 接続をセットアップします。QGISは自動的にpg_service.confから設定を読み込みます。

  2. QGISを開きます。

  3. 「レイヤー」 > 「レイヤーを追加」 > 「PostGISレイヤーを追加…」 に進みます。
  4. 「新規のPostGIS接続の作成」で、ドロップダウンメニューから「サービス」を選択します。
  5. 「サービス」フィールドにpg_service.confのサービス名(例:[NINJA_DB])を入力する。
  6. 「OK」をクリックすると、pg_service.confの設定を使ってPostgreSQLデータベースに接続します。

接続のテストをする
接続のテストをする

  1. QFieldCloudシークレットにパラメータを追加する: プロジェクトのシークレットキーのページに移動し、.pg_service.confからシークレットキーに直接サービスをコピーします。シークレットキーに従ってください。

シークレットキーを追加する
シークレットキーを追加する