yeke.io · dokümanlar · enterprise
PostgreSQL Bağlantısı
YEKE varsayılan olarak SQLite kullanır. Enterprise ile mevcut PostgreSQL sunucunuza bağlanabilirsiniz. Bağlantı ayarlarını, snapshot anahtarını ve lisans gereksinimlerini aşağıda bulabilirsiniz.
Genel bakış
İki sürücü, tek anahtarlı seçim.
YEKE_DB_URL verilirse PostgreSQL, verilmezse YEKE_DB_PATH altındaki SQLite dosyası kullanılır. İki ayar birlikte verilirse core başlamaz. PostgreSQL bağlantısı başarısız olursa SQLite’a geçilmez; core hatayla durur.
PostgreSQL kullanılan SQL yüzeyinin tamamında SQLite'ın disipliniyle davranır: tarih ISO-8601 metin, boole 0/1, JSON metin olarak tutulur. Kurumun DBA'sı için önemli olan tek fark bağlantı şeklidir: aşağıdaki §3.
Bağlantıyı kurma
Tek ortam değişkeni, bir de isteğe bağlı CA dosyası.
| Değişken | Zorunlu mu | Ne işe yarar |
|---|---|---|
YEKE_DB_URL | PG modu için zorunlu | PostgreSQL bağlantı adresi (postgres://kullanici:parola@host:5432/db). Verilmezse core SQLite kullanır. |
YEKE_PG_POOL_SIZE | opsiyonel | Replika başına havuz boyutu, varsayılan 10. Doğru değer kurumun DBA'sıyla konuşulur; YEKE kurumun havuz politikasını bilemez. |
YEKE_DB_CA_FILE | opsiyonel | Özel bir kurum CA'sıyla imzalanmış sunucu sertifikası için CA dosyasının yolu. sslmode=disable reddedilmez — bağlantı kurumun kendi DB ağıdır ve TLS'siz iç ağ PG kurulumları meşru bir kurum standardıdır. |
kubectl -n yeke-system create secret generic yeke-core-secrets \ --from-literal=YEKE_DB_URL="postgres://<kullanici>:<parola>@<pg-host>:5432/<db>" \ --from-literal=YEKE_SNAPSHOT_KEY="$(openssl rand -hex 32)"
Sunucu yapılandırması şart koşulmaz: sürücünün kullandığı her şey standart istemci yeteneğidir (düz SQL, TLS, advisory kilit). Eklenti kurulumu istenmez.
Desteklenen bağlantı şekli
Bağlantı hedefinin şekli bir sözleşmedir; kurumsal PG'ye bir havuzlayıcı üstünden bağlanmak istisna değil normdur.
YEKE_DB_URL doğrudan postmaster'a ya da session kipli bir
havuzlayıcıya işaret etmelidir.
transaction/statement kipli havuzlama desteklenmez
PgBouncer kullanıyorsanız YEKE için session modunda bir pool ayırın veya doğrudan PostgreSQL’e bağlanın. Lider seçimi için kullanılan advisory lock ve oturum ayarları bağlantıya bağlıdır; transaction ve statement pooling desteklenmez.
Açılış probu bu uyuşmazlığı erken yakalar: bağlantı hedefi bu şekli sağlamıyorsa core açık bir hatayla durur, sessizce yanlış davranmaz.
Asgari sürüm ve havuz
Sınır teknik değil destek-politikası sınırıdır.
PostgreSQL 15 veya üzeri desteklenir. pg.Pool bağlantı havuzunun boyutu YEKE_PG_POOL_SIZE ile ayarlanır; varsayılan değer replica başına 10’dur.
Snapshot anahtarı
SQLite modunda opsiyonel, PostgreSQL modunda zorunlu.
Saklanan credential'ları, AI anahtarlarını ve hook sırlarını şifreleyen 32 baytlık
YEKE_SNAPSHOT_KEYi SQLite modunda vermezseniz core kendisi üretip veri dizinine
yazar. PostgreSQL modunda bu davranış yoktur — core anahtarı üretmez, anahtar
YEKE_SNAPSHOT_KEY (env) ya da YEKE_SNAPSHOT_KEY_FILE (dosya) üzerinden
dışarıdan verilmek zorundadır. Kubernetes'te bu bir Secret'tır; yukarıdaki §2'deki
örnek komutta ikisi birlikte oluşturulur.
Gerekçe dosya sistemi bağımsızlığıdır: PostgreSQL modunda core hiçbir dizinin var ya da yazılabilir olmasını istemez — anahtarı kendisi üretip bir dizine yazmak bu bağımsızlığı baştan bozardı.
Lisans kapısı: ha-postgres
Kapılanan şey çoklu replica değil, PostgreSQL bağlantısının kendisi.
PostgreSQL sürücüsü Enterprise ha-postgres özelliğinin arkasındadır — tek
replica’lı bir PostgreSQL kurulumu bile bu bayrağı ister, ayrı bir bayrak açılmaz. Açılış sırası
bilinçlidir:
- Core önce PostgreSQL'e bağlanır (salt bağlantı).
schema_migrationstablosuna salt-okuma bakar; yoksa kurulum "bakir"dir.- Lisansı okur (dosya/env'den, şema zaten kuruluysa veritabanındaki kayıttan da).
- Bayrak yoksa: şemaya hiç dokunmadan
LICENSE_FEATURE_LOCKEDile açık hata verir. Bakir bir veritabanı bakir kalır. - Bayrak varsa: normal açılışa (baseline/göçler) devam eder.
Şema önceki bir açılıştan zaten kuruluysa core onu asla silmez (DROP
atmaz) — kurumun veritabanındaki nesneler kurumundur; lisans bayrağı sonradan kaldırılırsa hata
şemanın yerinde durduğunu ve temizliğin kurumun kararı olduğunu söyler.
0.26.1 notu: Arşiv tablosu (archived_operations) olmayan
eski bir kurulumda göç 38 artık DÜŞMÜYOR — tablo yoksa ilgili adımı atlar ve core açılır;
tablo VARKEN davranış değişmedi. Tablo eksikse açılış log'u bunu söyleyen tek bir satır basar,
kurulum düzeltilene kadar HER açılışta. Aynı kurulumda
uyum raporu artık hata vermez: arşivi "okunamadı" olarak
beyan eder ve canlı kayıtlarla üretilmeye devam eder. Tablo tamamlanana kadar
YEKE_RETENTION_ARCHIVE'i açmayın — arşiv yazma
modu archive_stalled ile durur.
Sınırlar
Bağlanan taraf YEKE'dir, işleten taraf değil.
- YEKE PostgreSQL'i kurmaz, kümelemez, yedeklemez, işletmez. Kurumun sağladığı bir PostgreSQL'e bağlanır — sürümü, kümelemesi, replikasyonu, yedekleme politikası ve performans ayarı kurumun DBA disiplinidir.
- Sunucu yapılandırması istenmez. Eklenti kurulumu ya da özel bir GUC ayarı gerekmez.
- Community'de PostgreSQL yoktur. SQLite, Community'nin ve tek-node kurulumların birinci sınıf yoludur ve öyle kalır.
- Var olan bir SQLite kurulumunu elle taşımak desteklenmez. Yolu
yeke-migratearacıdır.
Var olan bir SQLite kurulumunuz mu var?
PostgreSQL'e bağlanmak, var olan bir SQLite kurulumunu otomatik taşımaz. Yolu
yeke-migrate aracıdır: çevrimdışı, tek yönlü, bütünlük doğrulamalı.