Skip to main content

Ruby on Rails Uygulamasını PostgreSQL ile Kullanma (macOS – Nihai Rehber) 🚀


🧠 Teknik Özet

Bu rehberde, macOS üzerinde bir Ruby on Rails geliştirme ortamını varsayılan SQLite yerine PostgreSQL veritabanı ile kullanmayı öğreneceksiniz. Amaç, Rails uygulamalarında daha yüksek veri bütünlüğü ve esneklik sağlamak için PostgreSQL entegrasyonunu gerçekleştirmektir.

Adımlar:

  1. PostgreSQL kurulumu
  2. Veritabanı rolü (user) oluşturma
  3. Rails projesi başlatma
  4. Veritabanı yapılandırması ve ortam değişkeni ayarı
  5. Yapılandırmayı test etme

💡 Bu Rehberde Ne Öğreneceksiniz

  • Homebrew kullanarak PostgreSQL kurulumu
  • PostgreSQL’de rol ve parola oluşturma
  • Rails uygulamasını PostgreSQL ile yapılandırma
  • Ortam değişkenleriyle güvenli bağlantı sağlama
  • Rails sunucusunu test ederek bağlantıyı doğrulama

⚙️ 1. PostgreSQL Veritabanını Kurma

PostgreSQL, Homebrew aracılığıyla kolayca kurulabilir.

brew install postgresql

Bu komut PostgreSQL’in son sürümünü ve gerekli bağımlılıkları kurar.

PATH değişkenine PostgreSQL komutlarını ekleyin (örnek sürüm: 10):

echo 'export PATH="/usr/local/opt/postgresql@10/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile

PostgreSQL’in terminalde erişilebilir olmasını sağlar.

Servisi başlatın ve sistem açılışında otomatik çalışmasını sağlayın:

brew services start postgresql@10
postgres -V

PostgreSQL sürümünüzü kontrol eder ve servisi başlatır.


🧩 2. Rails Uygulaması İçin Veritabanı Rolü Oluşturma

Rails uygulamanızın kullanacağı özel bir PostgreSQL rolü oluşturun:

createuser -P -d appuser

appuser adında bir rol oluşturur ve veritabanı oluşturma izni verir.

Şifreyi sonradan değiştirmek isterseniz PostgreSQL konsoluna girin:

psql postgres
\password appuser
\q

Bu komutlarla yeni şifre belirleyip konsoldan çıkabilirsiniz.


🧱 3. Yeni Bir Rails Projesi Başlatma

PostgreSQL kullanacak şekilde yeni bir proje oluşturun:

rails new blogapp -d=postgresql
cd blogapp

-d=postgresql seçeneği, Rails projenizin PostgreSQL kullanmasını sağlar.


⚙️ 4. Veritabanı Yapılandırması

Şifreyi güvenli şekilde saklamak için bir ortam değişkeni oluşturun:

echo 'export BLOGAPP_DATABASE_PASSWORD="gizli_sifre"' >> ~/.bash_profile
source ~/.bash_profile

Ortam değişkeni sayesinde şifre kod dışında saklanır.

config/database.yml dosyasını düzenleyin:

default: &default
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
username: appuser
password: <%= ENV['BLOGAPP_DATABASE_PASSWORD'] %>

development:
<<: *default
database: blogapp_development

Bu ayarlar, Rails’in PostgreSQL’e doğru kullanıcı bilgileriyle bağlanmasını sağlar.

Veritabanlarını oluşturun:

rails db:create

Bu komut development ve test veritabanlarını oluşturur.


🧪 5. Yapılandırmayı Test Etme

Rails sunucusunu başlatın:

rails server --binding=127.0.0.1

Uygulama varsayılan olarak 3000 portunda çalışacaktır.

Bağlantıyı test etmek için:

curl http://127.0.0.1:3000

Eğer Rails karşılama sayfası görünüyorsa, PostgreSQL bağlantısı başarıyla sağlanmıştır.

Tarayıcıdan http://127.0.0.1:3000 adresine giderek uygulamanızın çalıştığını kontrol edin.


❓ Sıkça Sorulan Sorular (SSS)

1. SQLite yerine neden PostgreSQL kullanmalıyım?

PostgreSQL, karmaşık sorgular, yüksek ölçeklenebilirlik ve veri bütünlüğü açısından çok daha güçlüdür.

2. macOS’ta Homebrew kullanmak zorunda mıyım?

Hayır, PostgreSQL’i doğrudan resmi web sitesinden veya Postgres.app ile de kurabilirsiniz.

3. PostgreSQL rolü (role) tam olarak nedir?

Rol, PostgreSQL’de kullanıcıları temsil eder ve veritabanı erişim izinlerini tanımlar.

4. Ortam değişkenleri neden kullanılır?

Şifre gibi hassas bilgilerin doğrudan dosyada yazılmasını önleyerek güvenliği artırır.

5. Rails PostgreSQL ile hangi sürümlerde uyumlu çalışır?

Rails genellikle PostgreSQL’in 9.6 ve üzeri tüm sürümleriyle sorunsuz çalışır.


🎯 Sonuç

Artık macOS üzerinde PostgreSQL destekli bir Ruby on Rails geliştirme ortamı kurdunuz. Veritabanınızı yapılandırdınız, kullanıcı rolünüzü oluşturdunuz ve uygulamanız başarıyla çalıştı. 💡 Projelerinizi Rabisu Bulut üzerinde PostgreSQL destekli olarak barındırabilir, ölçeklenebilir altyapıdan yararlanabilirsiniz.