跳转至

PostgreSQL服务

pg_service.conf 文件允许为PostgreSQL服务器连接使用命名别名。无需将主机名、端口、数据库名称等存储到QGIS工程文件中,这些可以单独存储。甚至可以将用户名和密码存储在 pg_service.conf 文件中,避免在QGIS工程中以明文形式存储。

请在 QGIS文档 中阅读有关PostgreSQL服务的更多信息。

QField - Direct 连接

如果您直接从QGIS连接到数据库,可以将 pg_service.conf 文件放在QField数据文件夹中来使用。可以将文件放在内部设备存储或SD卡存储中。您可以使用应用程序屏幕底部的 关于QField 来检查QField数据文件夹的路径。

通常,安卓设备的路径是: /Android/data/ch.opengis.qfield/files/QField

笔记

与 *NIX系统文件命名 .pg_service.conf 不同,安卓系统文件命名为 pg_service.conf ,没有前导点符号 (.) 。

QFieldCloud

QFieldCloud也支持 pg_service.conf 配置。您需要使用 "离线编辑" 云动作配置PostgreSQL图层,并将服务设置存储在QFieldCloud工程的机密页面上。

请在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