Takip et

Django Uygulamanızda PostgreSQL’i Ubuntu 14.04 Üzerinde Kullanma Rehberi

Django Uygulamanızda PostgreSQL’i Ubuntu 14.04 Üzerinde Kullanma Rehberi Giriş Modern web uygulamalarının bel kemiğini oluşturan veritabanl

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.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Gönder

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.
Exit mobile version