claude-memory/graph/code-patterns/cloudsql-write-to-cloudsql-pattern-with-postgres-function-6d3dcf.md
Cal Corum b140d4d82a migrate: 313 memories from MemoryGraph
- 313 new markdown files created
- 30 relationships embedded
- 313 entries indexed
- State initialized with usage data
2026-02-13 11:11:48 -06:00

22 lines
1.1 KiB
Markdown

---
id: 6d3dcf69-9c0c-4d8a-b1a7-27267c07da51
type: code_pattern
title: "CloudSQL write_to_cloudsql pattern with Postgres function"
tags: [esb-monorepo, object-handler, python, cloudsql, pattern]
importance: 0.7
confidence: 0.8
created: "2025-12-10T19:55:28.150687+00:00"
updated: "2025-12-10T19:55:28.150687+00:00"
relations:
- target: db7cb384-b686-4afc-956c-ff74861a11cc
type: SOLVES
direction: incoming
strength: 0.5
- target: e80e161a-4be4-428d-8590-267b9ab4cc7c
type: BUILDS_ON
direction: incoming
strength: 0.5
---
Pattern for calling Postgres upsert functions from Python via Cloud SQL Connector: (1) Strip unwanted fields (e.g., raw_data) before sending, (2) Build function name from object_type: fn_upsert_{object_type.lower()}, (3) Pass data as JSONB: cursor.execute('SELECT fn_upsert_account(%s::jsonb)', (json.dumps(data),)), (4) Use connection singleton for serverless pooling, (5) Always close connection in finally block. Env vars: CLOUDSQL_INSTANCE, CLOUDSQL_USER, CLOUDSQL_DATABASE, CLOUDSQL_IAM_AUTH, CLOUDSQL_PASSWORD (if not IAM).