PostgreSQL’de Veritabanlarını Listeleme ve Değiştirme

PostgreSQL, güçlü bir açık kaynaklı nesne-ilişkisel veritabanı sistemi olup, veritabanlarını verimli bir şekilde yönetmek için zengin bir araç ve özellik seti sunar. İster bir veritabanı yöneticisi ister bir arka uç geliştirici olun, veritabanlarını listelemeyi ve bunlar arasında geçiş yapmayı bilmek, çoklu veritabanı ortamlarında gezinmek için temel bir bilgidir.

1. Ön Koşullar

Başlamadan önce, şunları kontrol edin:

  • PostgreSQL, sisteminizde kurulu olmalıdır (psql erişilebilir olmalıdır).

  • Uygun izinlere sahip olmalısınız (örneğin, süper kullanıcı veya bağlantı haklarına sahip bir rol).

  • Geçerli bir kullanıcı ile PostgreSQL sunucusuna kimlik doğrulaması yapabilmelisiniz.

2. PostgreSQL’de Veritabanlarını Listeleme

🔍 Yöntem 1: psql Meta-komutunu Kullanma

psql etkileşimli terminalini başlatın ve şunu çalıştırın:

l

Ya da genişletilmiş formunu kullanabilirsiniz:

list

Bu, tüm veritabanlarının bir listesini döndürecektir:

  • İsim

  • Sahibi

  • Kodlama

  • Sıralama

  • Ctype

  • Erişim ayrıcalıkları

 Yöntem 2: SQL Sorgusu Kullanma

Alternatif olarak, bu SQL ifadesini çalıştırın:

SELECT datname FROM pg_database WHERE datistemplate = false;

Bu sorgu, şablon veritabanlarını (template0, template1) hariç tutar ve kullanıcı tarafından oluşturulan veritabanlarını gösterir.

🛠️ Yöntem 3: Komut Satırı Kabuk

psql dışında, terminalinizden:

psql -U postgres -c "l"

Ayrıca psql -l komutunu da kullanabilirsiniz:

psql -l

3. Veritabanlarını Değiştirme

Bazı diğer RDBMS’lerin (örneğin, MySQL) aksine, PostgreSQL, aynı oturum içinde veritabanlarını değiştirmeyi desteklemez ve USE dbname; gibi bir komut kullanamazsınız.

 Neden?

PostgreSQL, giriş zamanında belirli bir veritabanına bağlantı kurar. Başka bir veritabanına erişmek için bağlantıyı kesip yeniden bağlanmalısınız.

 Önerilen Yaklaşım:

Mevcut oturumu kapatın ve istediğiniz veritabanına yeniden bağlanın:

q -- Quit current psql session

Sonra:

psql -U username -d target_database

Ya da doğrudan:

psql -U username -d target_database -h hostname -p port

Örnek:

psql -U admin -d salesdb

4. Verimli Çoklu Veritabanı İş Akışı için İpuçları

a. Şifresiz Geçiş için .pgpass Kullanın

Kimlik doğrulamasını otomatikleştirmek için bir .pgpass dosyası oluşturun:

hostname:port:database:username:password

Doğru izinlere sahip olduğundan emin olun:

chmod 600 ~/.pgpass

 b. Shell Scriptleri ile Otomatikleştirin

Listeleme ve geçiş yapmak için bir script oluşturun:

#!/bin/bash
echo "Available Databases:"
psql -U postgres -c "l"
read -p "Enter target DB: " db
psql -U postgres -d "$db"

 c. Ortam Değişkenlerini Kullanın

Daha hızlı geçiş için varsayılan DB ve kullanıcıyı dışa aktarın:

export PGDATABASE=mydb
export PGUSER=myuser
psql

5. PgAdmin ve Diğer GUI’lerle Çalışma

PgAdmin’de:

  1. Sunucu grubuna tıklayın.

  2. Sağa tıklayın → Bir veritabanına bağlan.

  3. Veritabanları arasında geçiş yapmak için Sorgu Aracı açılır menüsünü kullanın (her DB için yeni bir sekme oluşturur).

Birçok araç (DBeaver, DataGrip) sekmeli veritabanı görünümleri ile birden fazla bağlantıya izin verir.

6. Bonus: Mevcut Veritabanını Kontrol Etme

İçinde psql, mevcut veritabanınızı bulun:

SELECT current_database();

Ya da şunu kullanın:

conninfo

Sonuç

PostgreSQL, bazı diğer SQL motorları gibi oturum içi veritabanı geçişine izin vermese de, sağlam bağlantı modeli temiz, tutarlı erişim kontrolü ve kaynak yönetimi sağlar. Listeleme tekniklerini ustaca kullanarak ve akıllı yeniden bağlantı uygulamalarını benimseyerek, PostgreSQL veritabanlarını herhangi bir ortamda – CLI, GUI veya scriptler aracılığıyla – verimli bir şekilde yönetebilir ve geçiş yapabilirsiniz.