Ir para o conteúdo

Serviço PostgreSQL

Um ficheiro pg_service.conf permite usar um pseudonome para uma ligação com o servidor PostgreSQL. Em vez de armazenar o nome do servidor, porta, nome da base de dados e mais no ficheiro do Projeto QGIS, estes podem ser armazenados separadamente. É ainda possível armazenar nome de utilizador e palavra-chave num ficheiro pg_service.conf, para evitar que seja armazenado num texto não criptografado no Projeto QGIS.

Leia mais sobre os serviços PostgreSQL na documentação QGIS.

QField - Ligação direta

Se ligar diretamente do QGIS ao sua base de dados, poderá usar um ficheiro pg_service.conf colocando-o na pasta de dados QField. Poderá colocar o seu ficheiro no armazenamento interno do dispositivo ou no armazenamento do cartão SD. Pode verificar o caminho para a pasta de dados QField na parte inferior da tela Sobre QField na aplicação.

Normalmente o caminho nos dispositivos Android são algo semelhante a: /Android/data/ch.opengis.qfield/files/QField.

Nota

Ao contrário dos sistemas *NIX em que o ficheiro é denominado .pg_service.conf, o arquivo no Android é denominado pg_service.conf sem um sinal de ponto à esquerda (.).

QFieldCloud

QFieldCloud também suporta configurações pg_service.conf. Precisa de configurar as camadas do PostgreSQL com a ação de nuvem "Edição offline" e armazenar as configurações de serviço na página Secrets do Projeto QFieldCloud.

Leia mais como configurar um serviço PostgreSQL na documentação do QField.

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