Django Uygulamanızda PostgreSQL’i Ubuntu 14.04 Üzerinde Kullanma Rehberi
Giriş
Modern web uygulamalarının bel kemiğini oluşturan veritabanları, uygulamanın performansı, ölçeklenebilirliği ve güvenilirliği açısından kritik öneme sahiptir. Django gibi güçlü bir web çatısı ile çalışırken, doğru veritabanı seçimi projenizin geleceğini doğrudan etkiler. Bu teknik makalede, açık kaynak dünyasının en güçlü ve gelişmiş ilişkisel veritabanı sistemlerinden biri olan PostgreSQL’i, Django uygulamalarınızla birlikte Ubuntu 14.04 işletim sistemi üzerinde nasıl kullanacağınızı adım adım inceleyeceğiz.
Ubuntu 14.04, her ne kadar güncel bir işletim sistemi olmasa da, birçok üretim ortamında hala kullanılmakta veya eski sistemlerin incelenmesi gerekmektedir. Bu rehber, belirli bir versiyon üzerinde çalışması gereken veya bu versiyonu kullanan geliştiriciler ve sistem yöneticileri için özel olarak hazırlanmıştır. PostgreSQL, ACID (Atomicity, Consistency, Isolation, Durability) prensiplerine tam uyumu, gelişmiş veri tipleri, indeksleme seçenekleri, güçlü SQL desteği ve genişletilebilirlik özellikleri sayesinde büyük ölçekli ve karmaşık Django projeleri için ideal bir seçimdir. MySQL’e kıyasla daha zengin özellik setine sahip olması ve veri bütünlüğüne daha fazla odaklanması, özellikle finans, e-ticaret ve veri yoğun uygulamalarda tercih edilmesinin başlıca nedenlerindendir.
Bu makalenin amacı, Django projenizi Ubuntu 14.04 üzerinde PostgreSQL ile entegre etmek için gerekli olan tüm adımları, kurulumdan yapılandırmaya, test etmeden sık karşılaşılan sorunlara kadar detaylı bir şekilde açıklamaktır. Rehberin sonunda, Django uygulamanızın PostgreSQL ile sorunsuz bir şekilde çalıştığından emin olacaksınız.
Ön Gereksinimler
Bu rehberi takip edebilmek için aşağıdaki ön gereksinimlere sahip olmanız gerekmektedir:
Ubuntu 14.04 Sunucusu
* SSH erişimi olan veya doğrudan konsol erişimi sağlayabileceğiniz bir Ubuntu 14.04 sunucusu veya sanal makine. Bu sunucu üzerinde sudo yetkilerine sahip bir kullanıcı hesabınız olmalıdır.
Temel Terminal Bilgisi
* Linux komut satırı (terminal) kullanımı hakkında temel bilgi. Komutları çalıştırma, dosya düzenleme (nano veya vim gibi editörlerle) gibi işlemler hakkında bilgi sahibi olmanız beklenir.
Python ve Django
* Sunucunuzda Python 2.7 (Ubuntu 14.04’ün varsayılanı) veya Python 3.x kurulu olmalıdır. Django’nun güncel versiyonları Python 3 gerektirdiğinden, bu rehberde Python 3’ü hedefleyeceğiz.
* Django framework’ünün kurulu ve bir Django projenizin hazır olması. Eğer bir projeniz yoksa, rehberin ilerleyen adımlarında basit bir proje oluşturma adımlarını da göstereceğiz.
* Python sanal ortamı (virtualenv) kullanımı şiddetle tavsiye edilir. Bu, proje bağımlılıklarınızı sistem genelindeki Python paketlerinden izole etmenizi sağlar.
PostgreSQL Kurulumu
PostgreSQL’i Ubuntu 14.04 sisteminize kurmak oldukça basittir. Ubuntu’nun paket yöneticisi apt-get ile gerekli paketleri kolayca yükleyebiliriz.
Sistem Güncelleme
Kuruluma başlamadan önce, sisteminizdeki paket listelerini güncellemek ve mevcut paketleri yükseltmek iyi bir uygulamadır. Bu, en güncel ve kararlı paket versiyonlarını almanızı sağlar.
sudo apt-get update
sudo apt-get upgrade
Bu komutlar, sisteminizin paket indeksini günceller ve ardından kurulu tüm paketleri varsa daha yeni versiyonlarına yükseltir.
PostgreSQL Paketlerini Kurma
PostgreSQL sunucusunu ve gerekli istemci araçlarını kurmak için aşağıdaki komutu kullanın:
sudo apt-get install postgresql postgresql-contrib libpq-dev python-dev
* postgresql: PostgreSQL sunucu paketini içerir.
* postgresql-contrib: PostgreSQL için ek modüller ve yardımcı programlar içerir (örneğin, pg_stat_statements gibi).
* libpq-dev: PostgreSQL C kütüphanesinin geliştirme dosyalarını içerir. Bu paket, psycopg2 gibi Python PostgreSQL bağdaştırıcısının derlenmesi için gereklidir.
* python-dev: Python başlık dosyalarını ve statik kütüphanelerini içerir. Bu da Python paketlerinin C uzantılarını derlemesi için gereklidir. Özellikle Python 2.7 kullanıyorsanız önemlidir. Python 3 kullanıyorsanız, bunun yerine python3-dev kurmanız gerekebilir:
sudo apt-get install postgresql postgresql-contrib libpq-dev python3-dev
Bu rehberde Python 3’ü varsayarak ilerleyeceğiz, bu nedenle python3-dev kurulumunu öneririz.
Kurulum tamamlandığında, PostgreSQL servisi otomatik olarak başlatılır ve sistem başlangıcında çalışacak şekilde ayarlanır.
PostgreSQL Servis Durumu Kontrolü
PostgreSQL servisinin düzgün çalışıp çalışmadığını kontrol etmek için aşağıdaki komutu kullanabilirsiniz:
sudo service postgresql status
Çıktıda “running” (çalışıyor) ibaresini görmelisiniz. Eğer çalışmıyorsa, aşağıdaki komutla başlatabilirsiniz:
sudo service postgresql start
PostgreSQL Kullanıcısı ve Veritabanı Oluşturma
Güvenlik ve iyi uygulama açısından, Django uygulamanız için PostgreSQL’de özel bir kullanıcı ve veritabanı oluşturmak önemlidir. Varsayılan olarak, PostgreSQL bir postgres kullanıcısı oluşturur ve bu kullanıcı, sistemin postgres kullanıcısıyla ilişkilidir. Bu kullanıcı ile veritabanı işlemlerini gerçekleştirebiliriz.
psql Konsoluna Erişim
postgres sistem kullanıcısına geçiş yaparak psql komut satırı aracına erişebiliriz:
sudo -i -u postgres
psql
Bu komut sizi PostgreSQL komut istemine (postgres=#) götürecektir. Artık veritabanı işlemleri yapmaya hazırsınız.
Yeni Kullanıcı Oluşturma
Django uygulamamızın veritabanına bağlanmak için kullanacağı bir PostgreSQL kullanıcısı oluşturalım. Kullanıcı adını mydjangouser ve şifresini mypassword olarak belirleyelim (gerçek projelerinizde daha güçlü bir şifre kullanmayı unutmayın).
CREATE USER mydjangouser WITH PASSWORD 'mypassword';
Bu komut, mydjangouser adında yeni bir veritabanı kullanıcısı oluşturur ve ona mypassword şifresini atar.
Yeni Veritabanı Oluşturma
Şimdi de Django uygulamamızın kullanacağı veritabanını oluşturalım. Veritabanı adını mydjangodb olarak belirleyelim.
CREATE DATABASE mydjangodb;
Veritabanı Sahibini Ayarlama ve Yetkilendirme
Oluşturduğumuz veritabanının sahibini mydjangouser olarak ayarlamamız ve bu kullanıcıya veritabanı üzerinde tüm yetkileri vermemiz gerekir.
ALTER DATABASE mydjangodb OWNER TO mydjangouser;
GRANT ALL PRIVILEGES ON DATABASE mydjangodb TO mydjangouser;
Bu komutlar, mydjangodb veritabanının sahipliğini mydjangouser‘a devreder ve bu kullanıcıya veritabanı üzerinde tam kontrol yetkisi verir.
Yetkilendirme adımlarını tamamladıktan sonra psql konsolundan çıkmak için \q yazıp Enter tuşuna basın. Ardından exit yazarak postgres sistem kullanıcısından kendi kullanıcınıza geri dönebilirsiniz.
Django Projenizi Hazırlama
PostgreSQL veritabanı ve kullanıcısı hazır olduğuna göre, Django projemizi bu veritabanını kullanacak şekilde yapılandırmamız gerekiyor.
Django Projesi Oluşturma (Eğer Yoksa)
Eğer henüz bir Django projeniz yoksa, aşağıdaki adımları izleyerek basit bir proje oluşturabilirsiniz. Öncelikle bir sanal ortam oluşturalım ve etkinleştirelim:
mkdir myproject
cd myproject
python3 -m venv venv
source venv/bin/activate
Sanal ortam etkinleştirildikten sonra Django’yu kuralım ve yeni bir proje başlatalım:
pip install django
django-admin startproject myproject .
Bu komutlar, myproject adında bir Django projesi oluşturur ve mevcut dizine yerleştirir.
psycopg2 Kurulumu
Django’nun PostgreSQL ile iletişim kurabilmesi için bir veritabanı bağdaştırıcısına ihtiyacı vardır. Python için en popüler PostgreSQL bağdaştırıcısı psycopg2‘dir. Sanal ortamınız aktifken bu paketi kurun:
pip install psycopg2-binary
psycopg2-binary versiyonu, derleme gerektirmeyen önceden derlenmiş ikili dosyalar içerir, bu da kurulumu genellikle daha kolay hale getirir. Eğer derleme sorunları yaşarsanız veya daha spesifik bir kurulum gerekiyorsa psycopg2 paketini deneyebilirsiniz, ancak bu durumda libpq-dev ve python3-dev paketlerinin doğru şekilde kurulu olduğundan emin olmanız gerekir.
settings.py Dosyasını Yapılandırma
Django projenizin kök dizininde bulunan myproject/settings.py dosyasını açın. Bu dosya, Django projenizin tüm ayarlarını içerir. DATABASES bölümünü bulun ve aşağıdaki gibi düzenleyin:
# myproject/settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'mydjangodb',
'USER': 'mydjangouser',
'PASSWORD': 'mypassword',
'HOST': 'localhost', # Veya veritabanı sunucusunun IP adresi
'PORT': '', # PostgreSQL'in varsayılan portu (5432)
}
}
Açıklamalar:
* ENGINE: Kullanılacak veritabanı bağdaştırıcısını belirtir. PostgreSQL için django.db.backends.postgresql_psycopg2 kullanmalısınız.
* NAME: Daha önce oluşturduğunuz PostgreSQL veritabanının adıdır (mydjangodb).
* USER: Veritabanına bağlanmak için kullanılacak PostgreSQL kullanıcısının adıdır (mydjangouser).
* PASSWORD: Belirtilen kullanıcının şifresidir (mypassword).
* HOST: Veritabanı sunucusunun adresidir. Eğer veritabanı ve Django uygulaması aynı sunucuda çalışıyorsa localhost kullanın. Uzak bir sunucudaysa o sunucunun IP adresini veya alan adını girin.
* PORT: PostgreSQL’in dinlediği port numarasıdır. Varsayılan olarak 5432’dir. Boş bırakıldığında Django varsayılan portu kullanır.
Önemli Güvenlik Notu: Gerçek bir üretim ortamında, veritabanı şifresini settings.py dosyasına doğrudan yazmak yerine, ortam değişkenleri veya başka bir güvenli yapılandırma yöntemi kullanarak saklamanız şiddetle tavsiye edilir.
Veritabanı Migrasyonları ve Süper Kullanıcı Oluşturma
Django projeniz artık PostgreSQL ile konuşmaya hazır olduğuna göre, veritabanı şemasını oluşturmak ve Django’nun dahili uygulamaları için tabloları ayarlamak üzere migrasyonları çalıştırmamız gerekiyor.
Django projenizin kök dizininde olduğunuzdan ve sanal ortamınızın aktif olduğundan emin olun.
Migrasyonları Oluşturma
Öncelikle, Django’nun kurulu uygulamaları için (ve kendi uygulamalarınız için) model değişikliklerini veritabanı migrasyonlarına dönüştürelim:
python manage.py makemigrations
Bu komut, Django’nun dahili uygulamaları (auth, admin, sessions vb.) için gerekli olan migrasyon dosyalarını oluşturacaktır. Eğer kendi uygulamalarınız varsa ve modeller tanımladıysanız, onlar için de migrasyon dosyaları oluşturulacaktır.
Migrasyonları Uygulama
Şimdi bu migrasyon dosyalarını PostgreSQL veritabanınıza uygulayarak gerekli tabloları oluşturalım:
python manage.py migrate
Bu komut, Django’nun tüm migrasyonlarını çalıştırır ve PostgreSQL veritabanınızda tabloları, indeksleri ve diğer veritabanı objelerini oluşturur. İşlem tamamlandığında, veritabanınız Django projenizle uyumlu hale gelmiş olacaktır.
Süper Kullanıcı Oluşturma
Django’nun admin paneline erişmek için bir süper kullanıcı oluşturmanız gerekir:
python manage.py createsuperuser
Bu komut sizden bir kullanıcı adı, e-posta adresi ve şifre isteyecektir. Bu bilgilerle Django admin paneline giriş yapabilirsiniz.
Django Uygulamanızı Test Etme
Tüm kurulum ve yapılandırma adımları tamamlandıktan sonra, Django uygulamanızın PostgreSQL ile doğru şekilde çalıştığını doğrulamamız gerekiyor.
Geliştirme Sunucusunu Başlatma
Django’nun geliştirme sunucusunu başlatarak uygulamanıza web tarayıcınızdan erişin:
python manage.py runserver 0.0.0.0:8000
0.0.0.0:8000 kullanmak, uygulamanızın sunucunun tüm IP adreslerinden 8000 numaralı port üzerinden erişilebilir olmasını sağlar. Eğer bir sanal makine veya uzak sunucu kullanıyorsanız, tarayıcınızdan sunucunuzun IP adresi ve 8000 portu ile erişebilirsiniz (örn: http://SERVER_IP_ADDRESS:8000).
Django Admin Paneli Kontrolü
Tarayıcınızda http://SERVER_IP_ADDRESS:8000/admin/ adresine gidin. Oluşturduğunuz süper kullanıcı bilgileriyle giriş yapmayı deneyin. Başarılı bir şekilde giriş yapabiliyorsanız ve admin panelini görebiliyorsanız, Django uygulamanız PostgreSQL veritabanıyla başarılı bir şekilde iletişim kuruyor demektir. Admin panelinde kullanıcılar, gruplar ve diğer Django objelerini görebilmelisiniz.
Basit Bir Model ve Veri Girişi Testi
Daha kapsamlı bir test için, Django projenize yeni bir uygulama ekleyip basit bir model tanımlayabilir ve bu model üzerinden veri girişi yapmayı deneyebilirsiniz.
Örneğin, blog adında yeni bir uygulama oluşturalım:
python manage.py startapp blog
myproject/settings.py dosyanıza blog uygulamasını ekleyin:
# myproject/settings.py
INSTALLED_APPS = [
# ... diğer uygulamalar ...
'blog',
]
blog/models.py dosyasını düzenleyerek basit bir Post modeli tanımlayın:
# blog/models.py
from django.db import models
class Post(models.Model):
title = models.CharField(max_length=200)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
Modeli tanımladıktan sonra migrasyonları oluşturun ve uygulayın:
python manage.py makemigrations blog
python manage.py migrate
Şimdi bu modeli Django admin paneline kaydedin (blog/admin.py):
# blog/admin.py
from django.contrib import admin
from .models import Post
admin.site.register(Post)
Geliştirme sunucusunu tekrar başlatın (python manage.py runserver). http://SERVER_IP_ADDRESS:8000/admin/ adresine gidin ve “Blog” uygulaması altında “Posts” bölümünü göreceksiniz. Buradan yeni bir Post eklemeyi deneyin. Veriyi başarılı bir şekilde kaydedip listeleyebiliyorsanız, uygulamanız PostgreSQL ile tam entegre çalışıyor demektir.
Ek Güvenlik ve Performans İpuçları (Ubuntu 14.04 için)
Ubuntu 14.04 eski bir sürüm olmasına rağmen, PostgreSQL kurulumunuzu daha güvenli ve performanslı hale getirmek için bazı temel adımlar atabilirsiniz.
pg_hba.conf Ayarları (Güvenlik)
pg_hba.conf dosyası, PostgreSQL’e kimlerin, hangi yöntemle ve hangi veritabanlarına bağlanabileceğini kontrol eden ana güvenlik yapılandırma dosyasıdır. Varsayılan olarak, Ubuntu 14.04’te local bağlantılar için peer kimlik doğrulaması kullanılır, bu da sistem kullanıcı adıyla aynı veritabanı kullanıcı adının eşleşmesini gerektirir. Uzak bağlantılar için ise genellikle md5 veya trust kullanılır.
Bu dosyayı düzenlemek için:
sudo nano /etc/postgresql/9.3/main/pg_hba.conf
(PostgreSQL versiyonu 9.3 veya sisteminizdeki kurulu versiyona göre değişebilir.)
Dosyanın içinde, local bağlantılar için varsayılan olarak aşağıdaki gibi bir satır görebilirsiniz:
# "local" is for Unix domain socket connections only
local all all peer
Eğer Django uygulamanız ve PostgreSQL aynı sunucuda çalışıyorsa ve localhost üzerinden TCP/IP bağlantısı kuruyorsanız, aşağıdaki gibi bir satır eklemeniz gerekebilir (veya mevcut host satırını düzenlemeniz):
# IPv4 local connections:
host all all 127.0.0.1/32 md5
Bu satır, localhost (127.0.0.1) üzerinden gelen tüm kullanıcılardan tüm veritabanlarına md5 şifre doğrulaması ile bağlanmasına izin verir. Bu, Django’nun settings.py dosyasında belirttiğiniz kullanıcı adı ve şifre ile bağlanabilmesi için gereklidir.
Değişiklikleri kaydettikten sonra PostgreSQL servisini yeniden başlatın:
sudo service postgresql restart
Firewall (UFW) Ayarları
Sunucunuzda bir güvenlik duvarı (firewall) etkinleştirmek, yetkisiz erişimi engellemek için kritik öneme sahiptir. Ubuntu’da varsayılan olarak UFW (Uncomplicated Firewall) bulunur.
Eğer sunucunuzun sadece belirli IP adreslerinden veya sadece kendi içinden PostgreSQL’e erişmesini istiyorsanız, UFW kurallarını buna göre ayarlamalısınız.
PostgreSQL varsayılan olarak 5432 portunu kullanır.
sudo ufw enable # UFW'yi etkinleştir (eğer etkin değilse)
sudo ufw allow ssh # SSH erişimine izin ver (kendinizi kilitlemeyin!)
sudo ufw allow 5432/tcp # Tüm IP'lerden 5432 portuna TCP erişimine izin ver (dikkatli olun)
Daha güvenli bir yaklaşım, sadece belirli bir IP adresinden PostgreSQL portuna erişime izin vermektir:
sudo ufw allow from 192.168.1.100 to any port 5432 proto tcp
Bu komut, sadece 192.168.1.100 IP adresinden 5432 portuna gelen bağlantılara izin verir. Eğer Django uygulamanız ve PostgreSQL aynı sunucudaysa ve localhost üzerinden bağlanıyorsanız, 5432 portunu dışarıya açmanıza gerek kalmaz.
PostgreSQL Performans Ayarları
PostgreSQL’in varsayılan ayarları genellikle küçük sistemler için uygundur. Ancak, sunucunuzun kaynaklarına (RAM, CPU) ve uygulamanızın iş yüküne göre bazı parametreleri ayarlayarak performansı artırabilirsiniz. postgresql.conf dosyası bu ayarları içerir:
sudo nano /etc/postgresql/9.3/main/postgresql.conf
Bazı önemli parametreler:
* shared_buffers: PostgreSQL’in paylaşılan bellek alanının boyutu. Genellikle sistem RAM’inin %25’i olarak ayarlanır. (örn: shared_buffers = 256MB)
* work_mem: Her bir sorgu işlemi için geçici disk tabanlı sıralama ve hash tabloları için ayrılan bellek miktarı. Karmaşık sorgular için artırılabilir. (örn: work_mem = 4MB)
* maintenance_work_mem: VACUUM, CREATE INDEX gibi bakım işlemleri için ayrılan bellek. (örn: maintenance_work_mem = 64MB)
* wal_buffers: WAL (Write-Ahead Log) için kullanılan bellek. Küçük bir değer genellikle yeterlidir. (örn: wal_buffers = 16MB)
* max_connections: Veritabanına aynı anda bağlanabilecek maksimum istemci sayısı. (örn: max_connections = 100)
Bu ayarları değiştirdikten sonra PostgreSQL servisini yeniden başlatmanız gerekir:
sudo service postgresql restart
Bu ayarların optimize edilmesi, sunucunuzun kaynaklarını daha verimli kullanmasını sağlayarak Django uygulamanızın veritabanı performansını önemli ölçüde artırabilir. Ancak, bu ayarlar sunucunun donanım özelliklerine ve uygulamanın kullanım senaryosuna göre dikkatlice yapılmalıdır.
Sık Karşılaşılan Sorunlar ve Çözümleri
Kurulum ve yapılandırma sırasında veya sonrasında bazı sorunlarla karşılaşabilirsiniz. İşte sık karşılaşılan bazı sorunlar ve olası çözümleri:
psycopg2 Kurulum Hataları
Eğer pip install psycopg2 komutunu çalıştırırken derleme hataları alıyorsanız, bunun nedeni genellikle gerekli geliştirme kütüphanelerinin eksik olmasıdır.
Hata Mesajı Örneği:
Error: pg_config executable not found.
Error: You need to install postgresql-server-dev-X.Y for building a psycopg2 module, where X.Y is the PostgreSQL version.
Çözüm:
Yukarıda bahsettiğimiz libpq-dev ve python3-dev (veya python-dev Python 2 için) paketlerinin kurulu olduğundan emin olun:
sudo apt-get install libpq-dev python3-dev
Ardından, sanal ortamınızda pip install psycopg2-binary komutunu tekrar deneyin. psycopg2-binary genellikle derleme sorunlarını önler.
Yetkilendirme Hataları (FATAL: Peer authentication failed for user "...")
Bu hata genellikle PostgreSQL’in pg_hba.conf dosyasındaki kimlik doğrulama ayarlarıyla ilgilidir. Django uygulamanızın belirttiği kullanıcı adı ve şifre ile veritabanına bağlanmasına izin verilmediği anlamına gelir.
Hata Mesajı Örneği:
psycopg2.OperationalError: FATAL: Peer authentication failed for user "mydjangouser"
psycopg2.OperationalError: FATAL: password authentication failed for user "mydjangouser"
Çözüm:
1. pg_hba.conf Dosyasını Kontrol Edin:
sudo nano /etc/postgresql/9.3/main/pg_hba.conf dosyasını açın.
Eğer Django ve PostgreSQL aynı sunucudaysa ve localhost üzerinden bağlanıyorsanız, 127.0.0.1 için md5 kimlik doğrulamasını etkinleştirmeniz gerekir. Aşağıdaki satırın olduğundan veya eklediğinizden emin olun:
host all all 127.0.0.1/32 md5
local bağlantılar için de peer yerine md5 kullanabilirsiniz, ancak localhost üzerinden TCP/IP bağlantısı kuruyorsanız host satırı daha önemlidir.
Değişikliklerden sonra PostgreSQL servisini yeniden başlatın: sudo service postgresql restart
2. Kullanıcı Şifresini Kontrol Edin:
PostgreSQL kullanıcısının şifresinin doğru olduğundan emin olun. psql konsoluna girerek şifreyi değiştirebilirsiniz:
sudo -i -u postgres
psql
ALTER USER mydjangouser WITH PASSWORD 'yeni_sifre';
\q
exit
Ardından settings.py dosyasındaki şifreyi güncelleyin.
Veritabanı Bağlantı Hataları (could not connect to server: Connection refused)
Bu hata, Django uygulamasının PostgreSQL sunucusuna hiç bağlanamadığı anlamına gelir.
Hata Mesajı Örneği:
psycopg2.OperationalError: could not connect to server: Connection refused
Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432?
Çözüm:
1. PostgreSQL Servisinin Çalıştığından Emin Olun:
sudo service postgresql status
Eğer çalışmıyorsa başlatın: sudo service postgresql start
2. postgresql.conf Dosyasını Kontrol Edin:
sudo nano /etc/postgresql/9.3/main/postgresql.conf dosyasını açın.
listen_addresses parametresinin doğru ayarlandığından emin olun. Eğer localhost üzerinden bağlanıyorsanız, listen_addresses = 'localhost' veya listen_addresses = '*' olmalıdır. Yıldız işareti, PostgreSQL’in tüm ağ arayüzlerinde dinlemesini sağlar.
Değişikliklerden sonra PostgreSQL servisini yeniden başlatın.
3. Firewall Ayarlarını Kontrol Edin:
Eğer UFW veya başka bir güvenlik duvarı kullanıyorsanız, 5432 portunun açık olduğundan emin olun.
sudo ufw status komutuyla mevcut kuralları kontrol edebilirsiniz. Gerekirse sudo ufw allow 5432/tcp komutuyla portu açın.
Sonuç
Bu kapsamlı rehberde, Django uygulamanızı Ubuntu 14.04 üzerinde PostgreSQL veritabanı ile nasıl entegre edeceğinizi adım adım öğrendiniz. PostgreSQL’in kurulumundan, özel kullanıcı ve veritabanı oluşturmaya, Django projenizin settings.py dosyasını yapılandırmaktan, migrasyonları çalıştırmaya ve uygulamanızı test etmeye kadar tüm süreçleri ele aldık. Ayrıca, güvenlik ve performans ipuçları ile sık karşılaşılan sorunlara yönelik çözümler sunarak olası engelleri aşmanıza yardımcı olmayı amaçladık.
PostgreSQL, Django ile birlikte kullanıldığında, uygulamanıza sağlam bir veritabanı altyapısı sağlar. Veri bütünlüğüne verdiği önem, gelişmiş özellikleri ve topluluk desteği sayesinde, küçük projelerden büyük ölçekli kurumsal uygulamalara kadar her türlü ihtiyacınızı karşılayabilir. Ubuntu 14.04 gibi belirli bir işletim sistemi versiyonunda bile, bu adımları takip ederek güvenilir ve performanslı bir Django-PostgreSQL entegrasyonu kurabilirsiniz.
Unutmayın ki, üretim ortamlarında güvenlik ve performans ayarları daha derinlemesine incelenmeli ve sürekli olarak optimize edilmelidir. Veritabanı yedeklemesi, izleme ve daha gelişmiş performans ayarları gibi konular, uygulamanızın uzun vadeli sağlığı için kritik öneme sahiptir. Bu rehber, başlangıç için sağlam bir temel oluşturmaktadır ve buradan hareketle projenizi daha da geliştirebilirsiniz.
