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.
-
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.