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.
-
Create a Configuration File:
-
On Windows: Create a file named
pg_service.conf
and store it in a convenient location. -
On Linux/MacOS/Unix: Create a file named
.pg_service.conf
in your home folder (~
). -
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.
Additional Configuration Steps for Windows¶
-
Set Environment Variable: To ensure QGIS recognizes
pg_service.conf
, create an environment variable pointing to its location: -
Navigate to "This PC" or "My Computer" > Properties > Advanced System Settings > Environment Variables.
- Add a new variable:
- Variable name:
PGSERVICEFILE
- Variable value:
C:\Users\<YourUsername>\AppData\Roaming\postgresql\pg_service.conf
(or yourpg_service.conf
file path).
- Variable name:
Alternatively, you can set environment variables directly in QGIS via Settings > Options > System > Environment. Refer to QGIS System Settings for details.
-
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 frompg_service.conf
automatically. -
Open QGIS.
- Go to "Layer" > "Add Layer" > "Add PostGIS Layers..."
- In "Create a New PostGIS Connection," select "Service" from the drop-down menu.
- Enter the service name from
pg_service.conf
(e.g.,[NINJA_DB]
) in the "Service" field. - Click "OK" to connect to your PostgreSQL database using configurations from
pg_service.conf
.
- 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.