Nesta página, explicamos como conectar o driver psycopg3 do PostgreSQL a um banco de dados com dialeto PostgreSQL no Spanner. psycopg3
é um driver Python para PostgreSQL.
Verifique se o PGAdapter está em execução na mesma máquina que o aplicativo que está se conectando usando o driver psycopg3 do PostgreSQL.
export GOOGLE_APPLICATION_CREDENTIALS=/CREDENTIALS_FILE_PATH/credentials.json docker pull gcr.io/cloud-spanner-pg-adapter/pgadapter docker run \ -d -p 5432:5432 \ -v ${GOOGLE_APPLICATION_CREDENTIALS}:${GOOGLE_APPLICATION_CREDENTIALS}:ro \ -e GOOGLE_APPLICATION_CREDENTIALS \ gcr.io/cloud-spanner-pg-adapter/pgadapter \ -p PROJECT_NAME -i INSTANCE_NAME \ -x
Para mais informações, consulte Iniciar o PGAdapter.
Conecte-se ao PGAdapter usando TCP.
import psycopg with psycopg.connect("host=APPLICATION_HOST port=PORT dbname=DATABASE_NAME sslmode=disable") as conn: conn.autocommit = True with conn.cursor() as cur: cur.execute("select 'Hello world!' as hello") print("Greeting from Cloud Spanner PostgreSQL:", cur.fetchone()[0])
Substitua:
- APPLICATION_HOST: o nome do host ou endereço IP da máquina em que o PGAdapter está sendo executado. Se você estiver executando localmente, use
localhost
. - PORT: o número da porta em que o PGAdapter está
em execução. Mude isso na string de conexão se o PGAdapter estiver
sendo executado em uma porta personalizada. Caso contrário, use a porta padrão,
5432
.
- APPLICATION_HOST: o nome do host ou endereço IP da máquina em que o PGAdapter está sendo executado. Se você estiver executando localmente, use
Soquetes de domínio Unix
Nesta seção, explicamos como usar soquetes de domínio Unix para se conectar a um banco de dados de dialeto PostgreSQL. Use soquetes de domínio Unix para ter a menor latência possível.
Para usar soquetes de domínio Unix, o PGAdapter precisa estar em execução no mesmo host que o aplicativo cliente.
Verifique se o driver JDBC do PostgreSQL foi carregado.
import psycopg
with psycopg.connect("host=/tmp
port=PORT
dbname=DATABASE_NAME") as conn:
conn.autocommit = True
with conn.cursor() as cur:
cur.execute("select 'Hello world!' as hello")
print("Greetings from Cloud Spanner PostgreSQL:", cur.fetchone()[0])
Substitua:
- /tmp: o diretório de soquete de domínio padrão para
PGAdapter. Isso pode ser mudado usando o argumento de linha de comando
-dir
. - PORT: o número da porta em que o PGAdapter está
em execução. Mude isso na string de conexão se o PGAdapter estiver
sendo executado em uma porta personalizada. Caso contrário, use a porta padrão,
5432
.
A seguir
- Saiba mais sobre o PGAdapter.
- Para mais informações sobre as opções de conexão do driver psycopg3 do PostgreSQL, consulte Opções de conexão do psycopg3 no repositório do PGAdapter no GitHub.