コンテンツにスキップ

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サービスの設定方法を参照してください。

Creating a pg_service.conf File for PostgreSQL Connection in QGIS and Secrets

Before beginning, ensure that your PostgreSQL database allows connections from QFieldCloud. Refer to Technical specs for instructions.

Setup pg_service.conf File

We first need to set up a configuration file. There are many options to organize this, read more in the PostgreSQL documentation or follow the description below.

  1. Create a Configuration File:

  2. On Windows: Create a file named pg_service.conf and store it in a convenient location.

  3. On Linux/MacOS/Unix: Create a file named .pg_service.conf in your home folder (~).

  4. Define Connection Parameters:

Within the file, specify connection parameters for your PostgreSQL database using the following format:

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

Replace placeholders (your_host_or_ip, your_port, your_database_name, your_username, your_password) with actual connection details and save the file.

Parameters
Parameters

Additional Configuration Steps for Windows

  1. Set Environment Variable: To ensure QGIS recognizes pg_service.conf, create an environment variable pointing to its location:

  2. Navigate to "This PC" or "My Computer" > Properties > Advanced System Settings > Environment Variables.

  3. Add a new variable:
    • Variable name: PGSERVICEFILE
    • Variable value: C:\Users\<YourUsername>\AppData\Roaming\postgresql\pg_service.conf (or your pg_service.conf file path).

Alternatively, you can set environment variables directly in QGIS via Settings > Options > System > Environment. Refer to QGIS System Settings for details.

QGIS System Environment Variables
QGIS System Environment Variables

  1. Test the Connection in QGIS: Open QGIS and set up a new PostgreSQL connection using the service name defined in pg_service.conf (e.g., [MY_QGIS_DB]) in the connection details. QGIS will read configuration from pg_service.conf automatically.

  2. Open QGIS.

  3. Go to "Layer" > "Add Layer" > "Add PostGIS Layers..."
  4. In "Create a New PostGIS Connection," select "Service" from the drop-down menu.
  5. Enter the service name from pg_service.conf (e.g., [NINJA_DB]) in the "Service" field.
  6. Click "OK" to connect to your PostgreSQL database using configurations from pg_service.conf.

Test your connections
Test your connections

  1. Add Parameter to QFieldCloud Secrets: Navigate to the project's secrets page and copy the service directly from .pg_service.conf to the secret. Follow Secrets for guidance.

Add the secret
Add the secret