PostgreSQL’de Veritabanlarını Listeleme ve Değiştirme
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:
lYa da genişletilmiş formunu kullanabilirsiniz:
listBu, 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 -l3. 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 sessionSonra:
psql -U username -d target_databaseYa da doğrudan:
psql -U username -d target_database -h hostname -p portÖrnek:
psql -U admin -d salesdb4. 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:passwordDoğru izinlere sahip olduğundan emin olun:
chmod 600 ~/.pgpassb. 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
psql5. PgAdmin ve Diğer GUI’lerle Çalışma
PgAdmin’de:
Sunucu grubuna tıklayın.
Sağa tıklayın → Bir veritabanına bağlan.
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:
conninfoSonuç
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.


