materialize-postgres-create skill
flowctl kullanarak Estuary koleksiyonlarındaki verileri PostgreSQL tablolarına aktarmak için bir PostgreSQL materyalizasyonu oluşturun.
- GitHub yıldızları
- 7
- Dosyalar
- 1
- Son commit
- 4 Kas 2026
- Lisans
- Apache-2.0
- İzin verilen araçlar
- —
materialize-postgres-create skill ne işe yarar?
materialize-postgres-create bir agent skill'dir. flowctl kullanarak Estuary koleksiyonlarındaki verileri PostgreSQL tablolarına aktarmak için bir PostgreSQL materyalizasyonu oluşturun.
Özet, skill'in SKILL.md dosyasından oluşturuldu.
materialize-postgres-create skilli hakkında
Bu SKILL, Estuary koleksiyonlarından yakalanan veriler için PostgreSQL'i bir hedef olarak ayarlamanızı sağlar. Geliştiricilere; RDS, Aurora, Cloud SQL, Supabase, AlloyDB ve Neon dahil olmak üzere çeşitli PostgreSQL ortamlarına veri akışı sağlamak için flowctl kullanarak bir materyalizasyon oluşturma sürecinde rehberlik eder. Agent; ağ yolları ve SSL gereksinimleri gibi özel gereksinimlerin toplanmasından, gerekli flow.yaml yapılandırma dosyasının oluşturulmasına kadar tüm iş akışını yönetir.
Bir agent bu SKILL'i yüklediğinde, WebFetch aracılığıyla resmi konnektör dokümantasyonunu çeken ve doğru image tag'inin kullanıldığından emin olmak için konnektör kayıt defterini sorgulayan teknik bir asistan gibi hareket eder. Kullanıcıların SSH tünellerini yapılandırmak, hard deletes yönetimi veya olay günlükleri için delta updates etkinleştirmek gibi karmaşık kurulum görevlerinde yolunu bulmalarına yardımcı olur. SKILL ayrıca, konnektörün oturum düzeyindeki gereksinimleriyle uyumlu olmayan PgBouncer veya PgCat gibi bağlantı havuzlayıcıları için özel uyarılar sağlar. Yapılandırma hazır olduğunda agent, spec'in yayınlanmasına ve flowctl komutları aracılığıyla durumun doğrulanmasına yardımcı olur.
Bir agent bununla neler yapabilir
- 1Bir Postgres hedefi yapılandırınEstuary koleksiyonlarından belirli bir PostgreSQL veritabanına veri akışı sağlamak için bir materyalizasyon kurun.
- 2Bağlantı havuzlayıcı hatalarından kaçınınBir kullanıcının konnektörü bozacak olan Supabase veya Neon gibi bir bağlantı havuzlayıcı kullanmaya çalışıp çalışmadığını belirleyin.
- 3Bir akış yapılandırma dosyası oluşturunMateryalizasyon için gerekli olan endpoint, konnektör image'ı ve bindings bilgilerini içeren geçerli bir flow.yaml dosyası oluşturun.
- 4Bağlantı ve izin sorunlarını giderinBağlantı zaman aşımı, kimlik doğrulama hataları veya şema izin reddi gibi yaygın hataları çözün.
Skill'in SKILL.md dosyasından yazılmıştır. Her kullanım durumu oradaki bir alıntı ile kontrol edilir.
materialize-postgres-create skill nasıl kurulur
Her komut, skill klasörünü istemcinin skills dizinine kopyalar. Yüklemek için istemciyi yeniden başlatın veya yeni bir oturum başlatın.materialize-postgres-create skill'ini Eklenti uygulamasına kur
/plugin marketplace add estuary/agent-skills /plugin install estuary-materializations@estuary
materialize-postgres-create skill'ini Claude Code uygulamasına kur
~/.claude/skills/materialize-postgres-create/SKILL.md
$ npx degit estuary/agent-skills/skills/materialize-postgres-create ~/.claude/skills/materialize-postgres-creatematerialize-postgres-create skill'ini Claude Code (project) uygulamasına kur
.claude/skills/materialize-postgres-create/SKILL.md
$ npx degit estuary/agent-skills/skills/materialize-postgres-create .claude/skills/materialize-postgres-creatematerialize-postgres-create skill'ini Codex uygulamasına kur
~/.agents/skills/materialize-postgres-create/SKILL.md
$ npx degit estuary/agent-skills/skills/materialize-postgres-create ~/.agents/skills/materialize-postgres-creatematerialize-postgres-create skill'ini Gemini CLI uygulamasına kur
~/.gemini/skills/materialize-postgres-create/SKILL.md
$ npx degit estuary/agent-skills/skills/materialize-postgres-create ~/.gemini/skills/materialize-postgres-creatematerialize-postgres-create skill'ini Claude.ai uygulamasına kur
npx degit estuary/agent-skills/skills/materialize-postgres-create materialize-postgres-create && zip -r materialize-postgres-create.zip materialize-postgres-create # claude.ai → Customize → Skills → + → Create skill → Upload a skill → materialize-postgres-create.zip
SKILL.md
GitHub'da görüntüleCreate PostgreSQL Materialization
Create a PostgreSQL materialization using flowctl to stream data from Estuary collections into PostgreSQL tables.
Applies to: materialize-postgres (all variants: vanilla, RDS, Aurora, Cloud SQL, Supabase, AlloyDB, Neon)
Step 0: Load Connector Documentation
Before proceeding, fetch the official connector docs for prerequisites, config reference, and setup instructions.
Load the docs page: https://docs.estuary.dev/reference/Connectors/materialization-connectors/PostgreSQL/
Use WebFetch to load this page. It covers:
- Prerequisites (user creation, permissions, schema setup)
- Full config property reference
- SSH tunnel configuration
- SSL configuration
- Advanced options (delta updates, hard deletes, sync schedule)
Search Kapa for tribal knowledge (if the Estuary MCP is configured):
Search kapa ai knowledge sources for "materialize postgres common issues"
If Kapa MCP is not configured, the user can set it up: https://docs.estuary.dev/features/mcp-integration/
This skill provides the flowctl workflow and troubleshooting that docs don't cover.
Step 1: Gather Requirements
Before writing any YAML, ask the user:
- Postgres variant? — Vanilla, RDS, Aurora, Cloud SQL, Supabase, AlloyDB
- Network path? — Direct connection (cloud-hosted with IP allowlist), SSH tunnel (private network/on-prem), or ngrok (local dev).
Connection poolers are NOT supported. If the user mentions Supabase, Neon, PgBouncer, or PgCat, warn them immediately:
- The connector uses session-level temporary tables and prepared statements that break with pooled connections.
- Supabase: Must use the Direct connection (
db.xxx.supabase.co:5432), not the pooler (xxx.pooler.supabase.com:6543). - Neon: Must use the non-pooler endpoint — remove
-poolerfrom the hostname.
- Non-default data plane? — Most users use the default. Ask if they need a non-default data plane.
- Target database and schema? — Database name, schema (default:
public) - Source collections? — Which Estuary collections to materialize
- SSL required? — Some cloud providers require SSL connections
- Hard deletes? — Off by default. Without it, deleted rows stay in the destination marked with
_meta/op: 'd'. Enable to physically remove them. - Delta updates? — Off by default. Switches from one-row-per-key (standard merge) to append-only. Use for event logs or history tables.
- Sync schedule? — Controls how often batches are written to the destination (default: 30 minutes,
0sfor real-time). Affects latency and destination compute cost.
Step 2: Find the Correct Connector Version
Always use the latest numbered version tag. Query the connector registry:
flowctl raw get --table connector_tags \
--query 'documentation_url=eq.https://go.estuary.dev/materialize-postgres' \
--query 'select=image_tag,documentation_url' \
--output yaml
Use the returned image_tag — never hardcode a version.
Step 3: Help User Complete Prerequisites
Walk the user through prerequisites from the docs loaded in Step 0:
- Database user — Create a user with write permissions on the target schema
- Schema permissions — USAGE and CREATE on target schema
- Table permissions — SELECT, INSERT, UPDATE, DELETE if materializing to existing tables
- Network access — Firewall rules or SSH tunnel configured
Refer to the docs page for exact SQL commands and cloud-specific instructions.
Step 4: Create the Spec File
Build flow.yaml using the config reference from the docs. Minimal required config:
materializations:
<TENANT>/<PATH>/materialize-postgres:
endpoint:
connector:
image: ghcr.io/estuary/materialize-postgres:<VERSION>
config:
address: "<HOST>:5432"
database: "<DATABASE>"
user: "<USERNAME>"
password: "<PASSWORD>"
schema: "<SCHEMA>"
bindings:
- source: <TENANT>/<collection-path>
resource:
table: "<TABLE_NAME>"
For SSH tunnel or SSL, add the appropriate config block — see docs for full reference.
Step 5: Publish
flowctl catalog publish --source flow.yaml --auto-approve
Step 6: Verify
# Check status
flowctl catalog status <TENANT>/<PATH>/materialize-postgres
# View logs
flowctl logs --task <TENANT>/<PATH>/materialize-postgres --since 5m | jq -c '{ts, message}'
Status progression:
PENDING— Normal for ~30 seconds during shard assignmentBACKFILLING— Initial data sync from collectionOK— Running normally with real-time updates
Troubleshooting
"connection refused" or timeout
Cause: Database not reachable from Estuary cloud
Fix:
- Verify firewall allows Estuary IP addresses (see docs)
- Check security groups (AWS) or firewall rules (GCP)
- Use SSH tunnel for private databases
- For local testing:
ngrok tcp 5432
"password authentication failed"
Cause: Incorrect credentials or user doesn't exist
Fix:
- Verify username and password
- Check user exists:
SELECT * FROM pg_user WHERE usename = '<user>'; - Verify user can connect from external hosts (check
pg_hba.conf)
"permission denied for schema"
Cause: User lacks permissions on target schema
Fix: Grant USAGE and CREATE on the target schema — see docs for SQL.
"relation already exists" or schema conflicts
Cause: Table already exists with incompatible schema
Fix:
- Drop and recreate the table
- Use a different table name
- Ensure collection schema matches existing table
Materialization stuck in PENDING
Wait 30-60 seconds — this is normal during shard assignment. If still stuck:
flowctl logs --task <TENANT>/<PATH>/materialize-postgres --since 5m | jq 'select(.level == "error")'
SSL connection errors
Cause: SSL mode mismatch or certificate issues
Fix:
- Try
sslmode: "require"first - For AWS RDS, SSL is usually required — use
verify-caorverify-full - For self-signed certs, use
requiremode - See docs for full SSL configuration options
SSH tunnel connection failures
Cause: SSH configuration issues
Fix:
- Verify bastion is reachable:
ssh -p 22 user@bastion - Check private key format (must be OpenSSH format)
- Verify bastion can reach database:
nc -zv db-host 5432 - See SSH tunnel troubleshooting docs
Related Skills
connector-disable-enable— Pause/restart existing materializationsconnector-delete-recreate— Nuclear option for stuck materializationsestuary-logs— Deep log analysisestuary-catalog-status— Status checking
Bu becerideki dosyalar
1materialize-postgres-create skill soruları
materialize-postgres-create skill'ini Claude Code uygulamasına nasıl kurarım?
npx degit estuary/agent-skills/skills/materialize-postgres-create ~/.claude/skills/materialize-postgres-create komutunu çalıştırın. Claude Code, skill'leri ~/.claude/skills (tüm projeler) veya .claude/skills (tek proje) konumundan yükler ve açıklaması görevle eşleştiğinde skill'i kullanır.
materialize-postgres-create skill'ini hangi istemciler kullanabilir?
Agent Skills biçimini okuyan her istemci: Claude Code, Codex, Gemini CLI ve claude.ai (ZIP olarak yükleyin). Skill içindeki betikler yalnızca istemcinin kod çalıştırmaya izin verdiği yerlerde çalışır.
Bu konnektör ile PgBouncer veya Supabase pooler gibi bağlantı havuzlayıcıları kullanabilir miyim?
Hayır, bağlantı havuzlayıcıları desteklenmemektedir; çünkü konnektör, havuzlanmış bağlantılarda sorun çıkaran oturum düzeyinde geçici tablolar ve prepared statements kullanır.
Hedef tablodaki silinen satırları nasıl yönetebilirim?
Varsayılan olarak, silinen satırlar hedef tabloda bir metadata bayrağı ile işaretlenerek kalır. Bunları fiziksel olarak kaldırmak için 'hard deletes' özelliğini etkinleştirmeniz gerekir.
Verileri standart bir merge yerine sadece ekleme (append-only) şeklinde bir olay günlüğü (event log) olarak nasıl akıtabilirim?
'delta updates' özelliğini etkinleştirerek, anahtar başına tek satır modundan sadece ekleme (append-only) moduna geçiş yapabilirsiniz.