ServBay'de PostgreSQL Sürümü Nasıl Yükseltilir ve Taşınır?
Web geliştiriciler için yerel geliştirme ortamındaki veritabanı sürümlerini yönetmek büyük önem taşır. PostgreSQL sürümünü yükseltmek veya değiştirmek, genellikle yeni özelliklerden ve güvenlik güncellemelerinden faydalanmak ya da belirli bir projenin uyumluluk gereksinimlerini karşılamak için yapılır. Güçlü bir yerel web geliştirme ortamı aracı olan ServBay, birden fazla PostgreSQL sürümünü kolayca yükleyip yönetmenize, ayrıca bunlar arasında hızlıca geçiş yapmanıza imkan tanır.
Bu makalede, ServBay ortamında PostgreSQL’in varsayılan sürümünü güvenli ve verimli bir şekilde nasıl değiştireceğiniz adım adım anlatılacaktır. Örneğin, PostgreSQL 10’dan PostgreSQL 16’ya geçişi ele alacağız fakat burada anlatılan adımlar, ServBay’in desteklediği tüm PostgreSQL sürümleri arasında geçiş için geçerlidir.
Genel Bakış
PostgreSQL sürüm değiştirme işleminin temel aşamaları; mevcut veritabanını yedeklemek, hedef yeni sürümü yüklemek, ServBay’de varsayılan sürümü yapılandırmak ve yedeklenen verileri yeni sürüme aktarmaktır. Bu adımlar doğru şekilde uygulandığında, veri kaybı ya da uyumluluk sorunları riski önemli ölçüde azalır.
Kullanım Senaryoları
- En son sürüme yükseltme: Performans iyileştirmeleri, yeni özellikler ve güvenlik yamaları elde edin.
- Uyumluluk testi: Canlı ortama geçmeden önce uygulamanızın yeni PostgreSQL sürümüyle yerel olarak uyumlu olup olmadığını test edin.
- Proje gereksinimlerini karşılama: Bazı projeler belirli bir PostgreSQL sürümünü zorunlu tutabilir.
- Sürüme geri dönme: Uyumluluk sorunları yaşandığında eski sürüme geri geçmeniz gerekebilir.
Önkoşullar
Başlamadan önce aşağıdaki koşulları sağladığınızdan emin olun:
- ServBay’i kurmuş ve çalıştırıyor olmalısınız.
- ServBay paket yönetimi ve ayarlar paneli hakkında temel bilgiye sahip olmalısınız.
- ServBay üzerinde yönetici yetkilerine sahip olmalısınız.
- Temel komut satırı kullanım bilgisine sahip olmalısınız.
- Diskinizde, veritabanınızın tam yedeğini saklayacak kadar boş alan olmalıdır.
Adım Adım İşlem
Aşağıda ServBay’de varsayılan PostgreSQL sürümünü değiştirmek için ayrıntılı adımlar yer alıyor:
1. Eski Sürüm Veritabanını Yedekleyin
Herhangi bir sürüm değiştirme öncesinde, mevcut PostgreSQL veritabanınızı kesinlikle eksiksiz yedeklemenizi öneririz. Bu, veri kaybının önüne geçmek için en önemli adımdır. pg_dumpall
komutu, PostgreSQL sunucusundaki tüm veritabanlarını (sistem veritabanları ve kullanıcı veritabanları dahil) kolayca yedeklemenizi sağlar.
Terminal uygulamanızı açıp şu komutu çalıştırın:
pg_dumpall -U postgres -f postgresql_backup.sql
-U postgres
: Varsayılan PostgreSQL süper kullanıcı olanpostgres
ile bağlantı kurmanızı sağlar.-f postgresql_backup.sql
: Yedekleme çıktısı, mevcut klasördepostgresql_backup.sql
dosyasına yazılır.
Komutu çalıştırdığınızda sistem, sizden PostgreSQL postgres
kullanıcısının şifresini girmenizi isteyecektir. Doğru şifreyi girdikten sonra yedekleme işlemi başlar. Bittiğinde, bulunduğunuz dizinde postgresql_backup.sql
adında bir dosya olacaktır. Bu dosyayı güvenle saklayın.
2. ServBay Üzerinden Gerekli Yeni Sürümü Yükleyin
ServBay’in grafik kullanıcı arayüzü (GUI) içerisinde, Paketler Panelini (eski sürümlerde “Servis Paneli” olarak geçebilir) bulun ve açın.
Sol menüden Veritabanları kısmını seçin, ardından PostgreSQL’i bulun. Burada ServBay’in desteklediği birçok PostgreSQL sürümünü göreceksiniz. Geçiş yapmak istediğiniz yeni sürümün (örneğin PostgreSQL 16) yanındaki “Yükle” butonuna tıklayın.
Seçtiğiniz PostgreSQL sürümü ServBay tarafından otomatik olarak indirilecek ve kurulacaktır. Kurulumun tamamlanmasını bekleyin.
3. ServBay’de Eski PostgreSQL Sürümünü Devre Dışı Bırakın
Yeni sürüm kurulduktan sonra, olası bağlantı noktası (port) çakışmalarını veya sistemin yanlışlıkla eski sürümü kullanmasını önlemek için, eski PostgreSQL sürümünü devre dışı bırakmak önerilir.
ServBay’in Paketler Paneli -> Veritabanları -> PostgreSQL listesinde, mevcutta çalışan eski sürümü (ör. PostgreSQL 10) bulun. Yanındaki etkinleştirme/kapama anahtarına tıklayın (genelde yeşil ise etkin, tıklayınca gri olup devre dışı olur).
Eski PostgreSQL sürümünün servis durumu “devre dışı” olarak görünmelidir.
4. ServBay’de Yeni PostgreSQL Sürümünü Etkinleştirin
Eski sürüm devre dışı bırakıldıktan sonra, az önce yüklediğiniz yeni PostgreSQL sürümünü etkinleştirin.
ServBay’in Paketler Paneli -> Veritabanları -> PostgreSQL listesinde, yeni sürümü (ör. PostgreSQL 16) bulun. Yanındaki etkinleştirme anahtarına tıklayın (genelde gri ise devre dışı, tıklayınca yeşil olup etkin olur).
Birkaç saniye bekleyin, yeni PostgreSQL sürümünün servis durumunun “Çalışıyor” (yeşil) olduğunu onaylayın.
5. ServBay Ayarlarında Varsayılan PostgreSQL Sürümünü Değiştirin
ServBay, “varsayılan” bir PostgreSQL sürümü seçmenize olanak sağlıyor. Bu varsayılan sürüm, terminalde psql
gibi komutları kullandığınızda işletim sistemi tarafından hangi PostgreSQL dosyasının çalıştırılacağını belirler.
ServBay’in Ayarlar Panelini açın. Ayarlar arasında veritabanı veya PostgreSQL ile ilgili bölümü bulun. Burada, yüklü PostgreSQL sürümlerinden hangisinin sistemin varsayılanı olacağını seçebilirsiniz.
Yeni etkinleştirdiğiniz sürümü (ör. PostgreSQL 16) seçip, ekranın alt kısmındaki Uygula butonuna tıklayın.
6. Paketler Panelinde Varsayılan Sürümü Kontrol Edin
Tekrar Paketler Paneli -> Veritabanları -> PostgreSQL listesine dönün. Yeni sürümün (ör. PostgreSQL 16) yanında “varsayılan” etiketi veya benzeri bir işaretin belirdiğinden emin olun; bu, yeni sürümün başarıyla varsayılan olarak ayarlandığını gösterir.
7. Komut Satırında Varsayılan Sürümü Doğrulayın
ServBay GUI’da varsayılan sürüm gözükse de, terminalde kontrol ederek sistem ortamınızın (özellikle PATH değişkeninin) yeni PostgreSQL sürümünü kullandığından emin olun.
Yeni bir terminal penceresi açın (veya mevcut terminalde, ortam değişkenlerinin güncellenmesi için source ~/.zshrc
ya da source ~/.bash_profile
gibi komutları çalıştırın - shell yapılandırmanıza göre değişir). Sonra şu komutu çalıştırın:
psql --version
Çıktıda, az önce ayarladığınız yeni sürümün numarasını (ör. psql (PostgreSQL) 16.x.x
) görmelisiniz.
Hala eski sürüm gözüküyorsa, ServBay uygulamasını tamamen kapatıp tekrar açmanız veya ortam değişkeni ayarlarını manuel güncellemeniz gerekebilir.
8. Veritabanını Geri Yükleyin
Şimdi, daha önce aldığınız yedeği yeni PostgreSQL sürümüne yüklemeniz gerekiyor. Yeni sürümün servisinin aktif olduğundan emin olun.
Terminalde, postgresql_backup.sql
dosyanızın olduğu klasöre gidip şu komutu çalıştırın:
psql -U postgres -f postgresql_backup.sql
-U postgres
: Yeni PostgreSQL sürümündekipostgres
kullanıcısı ile bağlantı kurar.-f postgresql_backup.sql
: SQL komutları, bu dosyadan okunup çalıştırılır.
Sistem sizden tekrar postgres
şifresini isteyecektir. Şifreyi girdikten sonra geri yükleme işlemi başlar. İşlem süresi, yedek dosyanızın büyüklüğüne göre değişir.
Not: Eğer yedek dosyanızda veritabanı oluşturma komutları (CREATE DATABASE
) varsa ve aynı isimli veritabanları yeni sürümde zaten mevcutsa, hata oluşacaktır. Böyle bir durumda, önce yeni sürümdeki çakışan veritabanlarını manuel olarak silmeniz gerekebilir. Lütfen çok dikkatli olun - sileceğiniz veritabanlarının gerçekten ihtiyaç duyulmayan ya da başka bir yedeklerinin olduğu konusunda emin olun. Silmek için DROP DATABASE dbname;
komutunu kullanabilirsiniz.
9. Veritabanının Tamamen Geri Yüklendiğini Onaylayın
Geri yükleme tamamlandığında, yeni PostgreSQL sürümüne giriş yapıp veritabanlarınızı ve verilerinizi kontrol edin.
Terminalde şu komutu çalıştırın:
psql -U postgres
Şifreyi girin ve giriş yaptıktan sonra, tüm veritabanı listesini görmek için şu komutu kullanın:
\l
Daha sonra belirli bir veritabanına bağlanıp (örneğin \c veritabani_adi
), tablo yapılarını ve içeriklerini inceleyebilirsiniz (örneğin; \d tablo_adi
, SELECT COUNT(*) FROM tablo_adi;
) böylece verilerin tam geldiğinden emin olursunuz.
\c servbay_demo_db -- Örnek veritabanına bağlan
\d -- Tüm tabloları görüntüle
SELECT * FROM tablo_adi LIMIT 10; -- Tablo içinden örnek veri görüntüle
2
3
Tüm önemli verileriniz sorunsuzca aktarılmışsa, artık yeni PostgreSQL sürümünde geliştirme yapmaya hazırsınız.
Dikkat Edilmesi Gerekenler
- Veri uyumluluğu: PostgreSQL sürümleri arasında genel olarak yüksek uyumluluk olsa da, ana sürümler arası geçişlerde veri formatı veya bazı özelliklerde uyumsuzluklarla karşılaşabilirsiniz. Belirli bir sürüme ait resmi PostgreSQL yükseltme belgelerini incelemeniz önerilir.
- Uygulama uyumluluğu: Uygulamanızın kodu, kullanılan veritabanı sürücüleri veya ORM araçları yeni PostgreSQL sürümüne tam uyumlu olmayabilir. Yerelde sürümü değiştirdikten sonra uygulamanızı mutlaka kapsamlı test edin.
- Şifre yönetimi: İşlemler boyunca PostgreSQL’in
postgres
kullanıcısı şifresi gerekecek. Şifrenizi bildiğinizden emin olun. Unuttuysanız, ServBay PostgreSQL root şifresi sıfırlama fonksiyonu da sunar. - Yedek doğrulama: Burada anlatıldığı gibi geri yükleme mümkün olsa da, önemli geçişlerden önce (imkanınız varsa) yedeğinizin başka bir izole ortamda sorunsuzca geri yüklenebildiğinden emin olun.
Sıkça Sorulan Sorular (SSS)
- S: Geri yüklerken “veritabanı zaten var” hatası alırsam ne yapmalıyım?
- C: Eğer yedek dosyanızda
CREATE DATABASE
komutları varsa ve aynı isimde veritabanları yeni sürümde önceden oluşturulmuşsa, işlem başarısız olur. Bu veritabanlarını yeni sürümde elle oluşturmadıysanız ve yedeğinizden geri yüklenebiliyorsa, yeni PostgreSQL’e (psql -U postgres
) giriş yaparakDROP DATABASE dbname;
ile çakışan veritabanını silip ardından geri yüklemeyi tekrar deneyin. Silme işlemini yaparken veritabanının yedeğinin olduğundan MUTLAKA emin olun.
- C: Eğer yedek dosyanızda
- S: ServBay’de birden fazla PostgreSQL sürümü yüklü, ama
psql --version
yanlış sürümü gösteriyor?- C: Genellikle ortam değişkenleri güncellenmemiştir. Terminal penceresini kapatıp tekrar açmayı ya da
source ~/.zshrc
(veya kullandığınız shell yapılandırma dosyasını) çalıştırmayı deneyin. Sorun devam ederse, ServBay uygulamasından tamamen çıkıp tekrar başlatmayı deneyin.
- C: Genellikle ortam değişkenleri güncellenmemiştir. Terminal penceresini kapatıp tekrar açmayı ya da
- S: Sürüm değiştirdikten sonra uygulamam veritabanına bağlanamıyor?
- C: Uygulamanızın veritabanı bağlantı yapılandırmasını kontrol edin ve yeni PostgreSQL sürümünün dinlediği portun (genellikle 5432) doğru girildiğinden emin olun. Ayrıca veritabanı sürücüsü veya ORM’in yeni sürüme uyumlu olup olmadığını kontrol edin.
Sonuç
Buradaki adımları izleyerek, ServBay ortamında PostgreSQL’in varsayılan sürümünü güvenli ve sorunsuz şekilde değiştirebilirsiniz. Temel olan önce eksiksiz bir yedek almak, ardından ServBay üzerinde paket ve varsayılan sürüm ayarlarını yapmak, son olarak da veriyi yeni sürüme aktararak doğrulamaktır. ServBay’in sunduğu kolaylıklarla, geliştiriciler farklı projelerin ihtiyaçlarını pratik şekilde karşılayacak şekilde yerel veritabanı ortamlarını yönetebilirler.