# Veritabanı

> Projeleriniz için PostgreSQL veritabanı açın, ortamlarınıza bağlayın, yedeğini indirin. Bağlantı bilgileri uygulamanıza kendiliğinden verilir.

Turguz'da PostgreSQL 17 var. Bir **veritabanı sunucusu** yalnız sizin kiracınızın kullandığı bir PostgreSQL'dir. Ona bağlanan her ortam içinde kendi veritabanını alır; ortamlar birbirinin verisini göremez. Bağlantı bilgileri uygulamanıza ortam değişkeni olarak verilir, elle bir şey yazmanız gerekmez.

Sunucular ve bağlantıları **Veritabanı** sayfasındadır; bir ortamın veritabanı da o ortamın **Veritabanı** sekmesindedir.

## En kısa yol: ortama veritabanı eklemek

**Ortamın Veritabanı sekmesini açın**

Projeler sayfasında ortamı seçin ve **Veritabanı** sekmesine geçin.
**«Veritabanı ekle»**

Henüz bir veritabanı sunucunuz yoksa en küçük boyda bir sunucu kendiliğinden açılır ve kotanızdan düşer. Birden çok sunucunuz varsa hangisine bağlanacağı sorulur.
**Uygulamaya verin**

Kart «Bir adım kaldı» der: uygulamanızın yeni bağlantıyı görmesi için «Şimdi uygula» düğmesine basın.

Projeyi «Kur ve dağıt» ile kuruyorsanız kurulum ekranındaki «PostgreSQL kullanıyor — yeni bir veritabanı oluştur ve bağla» seçeneği aynı işi kurulumun bir adımı olarak yapar.

## Uygulamaya verilen değişkenler

Bağlı veritabanının bilgileri uygulamanıza şu değişkenlerle verilir: `DATABASE_URL`, `PGHOST`, `PGPORT`, `PGUSER`, `PGPASSWORD`, `PGDATABASE`, `PGSSLMODE`, `ConnectionStrings__DefaultConnection`, `DIRECT_URL`, `POSTGRES_URL`, `POSTGRES_PRISMA_URL`, `DB_HOST`, `DB_PORT`, `DB_USER`, `DB_PASSWORD`, `DB_NAME`, `SPRING_DATASOURCE_URL`, `SPRING_DATASOURCE_USERNAME`, `SPRING_DATASOURCE_PASSWORD`, `POSTGRES_HOST`, `POSTGRES_PORT`, `POSTGRES_DB`, `POSTGRES_USER`, `POSTGRES_PASSWORD`, `QUARKUS_DATASOURCE_DB_KIND`, `QUARKUS_DATASOURCE_JDBC_URL`, `QUARKUS_DATASOURCE_USERNAME`, `QUARKUS_DATASOURCE_PASSWORD`, `DB_DATABASE`, `DATABASE_USER`, `DATABASE_USERNAME`, `DATABASE_PASSWORD`, `JDBC_DATABASE_URL`, `JDBC_DATABASE_USERNAME`, `JDBC_DATABASE_PASSWORD`, `DATABASE_HOST`, `DATABASE_PORT`, `DATABASE_NAME` ve `DATABASE_SSL`. Uygulamanız hangisini okuyorsa onu kullanın; çoğu çerçeve `DATABASE_URL` bekler.

Aynı adla kendiniz bir değişken tanımladıysanız sizinki geçerli olur; panel bu değişkenleri «sizinki geçerli» diye işaretler. Parola panelde görünmez, yalnız uygulamanıza verilir.

Bağlantı şifreli de olabilir: veritabanı şifreli ve şifresiz bağlantıyı birlikte kabul eder. Varsayılan şifresizdir (veritabanı aynı sunucuda, dışarıya kapalı iç ağda). Kodunuz şifreli bağlantı istiyorsa (`?sslmode=require`, `ssl: true`, `ssl: 'require'`) ayrıca bir şey yapmanız gerekmez. Node.js uygulamaları platformun sertifikasına kendiliğinden güvenir (`NODE_EXTRA_CA_CERTS`); bu, veritabanı bağlı ortama sonraki yayınlarla gelir.

Bu değişkenler derlemeye verilmez. Projeniz sayfalarını derlemede veritabanından üretiyorsa **Ayarlar** › **Derleme ve çalıştırma** › «Derlemede veritabanı»nı açın: derleme, yalnız o derleme boyunca geçerli ve yalnız okuyabilen ayrı bir kimlikle bağlanır. Derleme veritabanına yazamaz; tablo değişikliklerini derleme komutunda değil, yayından önce çalışan komutta çalıştırın. Bu ayar açıkken o komut derlemeden önce çalışır, derleme güncel tabloları okur; komut başarısız olursa derleme başlamaz. Dockerfile ile derlerken bağlantı değişkenleri `ARG` olarak gelir (ör. `ARG DATABASE_URL`). Var olan bir veritabanını bağladığınızda bu ayar kullanılmaz.

Tablo değişikliklerini (migration) nasıl çalıştıracağınız [Ortamlar](/docs/tr/ortamlar#yayindan-once-calisan-komut) sayfasında.

## Veritabanı sunucusu açmak

Bir sunucuyu kendiniz de açabilirsiniz; örneğin bir uygulamanın veritabanını ötekilerden ayırmak için. Bu arızaları birbirinden ayırır, güvenlik için gerekmez.

Veritabanı sayfasında «Yeni sunucu aç» düğmesine basın, bir «Ad» verin ve boyutu seçin:

| Boy | İşlemci | Bellek | Disk |
| --- | ---: | ---: | ---: |
| Küçük | 1 vCPU | 512 MB | 5 GB |
| Orta | 1 vCPU | 1 GB | 20 GB |
| Büyük | 2 vCPU | 4 GB | 50 GB |

Seçtiğiniz boyut kotanızdan hemen düşer. Boyut sonradan değişmez; disk ise sunucu çalışırken «Diski büyüt» ile kesintisiz büyür. Disk küçültülemez.

## Bir sunucuyu birden çok ortama bağlamak

Sunucunun kartındaki «+ Ortam bağla» ile başka bir ortamı da aynı sunucuya bağlarsınız. Bağlantıdan sonra o ortamı yeniden dağıtın ki uygulama değişkenleri görsün.

Bir sunucunun aynı anda kabul ettiği bağlantı sayısı, ona bağlı ortamlar arasında eşit bölünür. Yeni bir ortam bağlamak öteki ortamların payını da düşürür. Pay güvenli sınırın altına inecekse panel sizi uyarır; sunucu doluysa bağlamaz ve yeni bir sunucu açmanızı önerir.

## Yedek ve geri yükleme

**Dikkat:**
Turguz verinizin ayrı bir yedeğini tutmaz. Yedeğinizi kendiniz, düzenli olarak indirin.

- «Yedeği indir» veritabanının dökümünü bilgisayarınıza indirir. Döküm verinin tamamını içerdiği için yedek bölümü yalnız «Kiracı yöneticisi» ve «Geliştirici» rolünde görünür.
- «Yedekten geri yükle» bir `.sql` dökümünü yükler; dosya en çok 1 GB olabilir. Geri yükleme mevcut verinin üzerine yazar. İşlem yarıda kalırsa veritabanı hiç değişmez.

## Kendi aracınızla bağlanmak

**Kurulumunuza bağlı:** Bu özellik kurulumunuzda açık değilse panelde görünmez; açılmasını istiyorsanız platform yöneticinize sorun.

Dışarıdan bağlanma kurulum ayarlarına bağlıdır; hazır değilse bölüm sebebini söyler.

Veritabanınızı bilgisayarınızdaki bir araçla (psql, DBeaver, pgAdmin gibi) okuyabilirsiniz. Ortamın Veritabanı sekmesinde **Dışarıdan bağlanma** bölümünde «Dışarıdan bağlanmayı aç» düğmesine basın.

- Bu bağlantı **yalnız okur**; veriyi değiştiremez. Uygulamanızın kendi bağlantısı etkilenmez.
- Kimlerin bağlanabileceğini seçersiniz: **İzinli adresler** listelerinizden en az birini seçin ([Belirli adreslere açmak](/docs/tr/internet-erisimi#sitenizi-ve-sunucunuzu-yalniz-belirli-adreslere-acmak)). «Herkese açık» seçeneği veritabanını internetin tamamına açar; ayrıca veritabanının adını yazarak onaylanır ve açıkken kartta uyarı olarak görünür. Bazı kurulumlarda bu seçenek yoktur.
- Açınca adres, kullanıcı ve **parola** gösterilir. Parola yalnız o anda bir kez görünür; kaydedin. Unutursanız «Parolayı yenile» yeni bir parola verir, eski parolayla açık bağlantılar kesilir.
- Bağlantı her zaman şifrelidir. Aracınızda şifreli bağlantıyı açın (`sslmode=require`); şifresiz deneme uzun süre bekleyip anlaşılmaz bir hata verir.
- «Kapat» dışarıdan açık bağlantıları hemen keser. Sunucu durduğunda ya da çöp kutusundayken dışarıdan bağlanılamaz; yeniden çalışınca kendiliğinden açılır.
- Açma, kapatma, adres değişikliği ve parola yenileme denetim kaydına yazılır. Bu ayarları yalnız «Kiracı yöneticisi» değiştirebilir.

## Ayırmak, silmek ve geri almak

- **Ortamdan ayırmak:** «Ayır» veritabanını çöp kutusuna gönderir. 7 gün boyunca verisiyle birlikte «Geri al» ile geri getirebilirsiniz. «Çöpü boşalt» beklemeden kalıcı olarak siler. «Geri al» ortamın kendisini ister: ortamı silerseniz çöpteki veritabanı artık geri getirilemez ve süresi dolunca kendiliğinden silinir.
- **Ortamla birlikte silmek:** bağlı veritabanı olan bir ortamı silerken pencere veritabanını gösterir ve «Veritabanıyla birlikte sil» seçeneğini verir. İçindeki veriler de kalıcı olarak silinir; saklamak istiyorsanız önce yedek alın. Silme güvenli sırayla yapılır: veritabanı önce çöp kutusuna gider, sonra ortam silinir, en son çöp boşaltılır. Ortam silinemezse veritabanı çöp kutusunda kalır ve «Geri al» ile geri getirilebilir. Var olan bir veritabanına bağlıysanız «Bağlantıyı kaldır ve ortamı sil» yalnız bağlantıyı kaldırır; veritabanının kendisine dokunulmaz.
- **Sunucuyu silmek:** önce bağlı ortamların veritabanlarını ayırın, sonra «Sunucuyu sil». Sunucu 7 gün karantinada bekler ve bu süre boyunca disk kotanızdan düşmeye devam eder. Süre dolmadan 3 gün önce bildirim alırsınız. «Geri al» sunucuyu geri getirir; «Kalıcı sil» beklemeden siler ve geri alınamaz.

## Var olan bir veritabanını bağlamak

Turguz dışında çalışan bir PostgreSQL'i de bir ortama bağlayabilirsiniz. Ortamın Veritabanı sekmesinde «Var olan veritabanını bağla» düğmesine basın; adresi, kapıyı, veritabanı adını, kullanıcıyı ve parolayı yazıp «Onaya gönder» deyin.

- Bağlantı, platform yöneticisi onaylayana kadar çalışmaz. Onaylanınca bildirim alırsınız.
- Yönetici erişimi sonradan kapatabilir. Kapatılan erişim yeniden açılmaz; bağlantıyı kaldırıp yeniden talep edersiniz. Yöneticinin notu ya da sebebi bildirimde ve bağlantı kartında görünür.
- Kapı yalnız 5432 ve 6432 olabilir.
- Turguz bu veritabanını yönetmez: kotanızdan düşmez, yedeğini almaz.
- Parola ortamın gizli ayarlarında saklanır; bu ortama dağıtım yapabilen herkes ona erişebilir.

## Vektör veritabanı

**Kurulumunuza bağlı:** Bu özellik kurulumunuzda açık değilse panelde görünmez; açılmasını istiyorsanız platform yöneticinize sorun.

Vektör veritabanı (Qdrant) kurulum ayarıdır.

Projeniz vektör araması yapıyorsa ortamın Veritabanı sekmesinde «Qdrant ekle» ile bir Qdrant kurabilirsiniz. Boyutlar:

| Boy | İşlemci | Bellek | Disk |
| --- | ---: | ---: | ---: |
| Küçük | 1 vCPU | 1 GB | 5 GB |
| Orta | 2 vCPU | 2 GB | 10 GB |

Uygulamanıza `QDRANT_URL`, `QDRANT_HOST` ve `QDRANT_PORT` değişkenleri verilir; erişim anahtarı açıksa ayrıca `QDRANT_API_KEY`.

- «Orta boya büyüt» ve «Diski büyüt» ile büyütürsünüz; sonradan küçültülemez.
- «Kaldır» Qdrant'ı kaldırır; verisi 7 gün saklanır ve bu sürede «Geri al» ile geri gelir. «Verisini kalıcı sil» beklemeden siler.
- Turguz Qdrant verisinin de ayrı bir yedeğini tutmaz.

## Desteklenmeyenler

Turguz'un kurduğu ilişkisel veritabanı PostgreSQL'dir; MySQL, MongoDB ve Redis sunulmaz. SQLite dosyası uygulamanın geçici diskindeyse her yeni sürümde sıfırlanır: dosyayı uygulamanın kalıcı diskinde tutun (bkz. [Ortam boyu](/docs/tr/ortamlar#ortam-boyu)) ya da PostgreSQL kullanın.
