Bu rehber, PostgreSQL'i Docker üzerinde çalıştırmayı ve Django projesine entegre etmeyi adım adım anlatır.


1. Gereksinimler

Gerekli Araçlar:

  • Docker
  • Python 3 ve Django
  • Docker Compose (Docker Desktop ile birlikte gelir)

Kontroller:

# Docker ve Docker Compose sürüm kontrolü
docker --version
docker-compose --version

2. Docker ile PostgreSQL Kurulumu

Adım 1: docker-compose.yml Dosyasını Oluşturma

Proje klasörünüzde bir docker-compose.yml dosyası oluşturun ve aşağıdaki içeriği ekleyin:

version: '3.8'

services:
  postgres:
    image: postgres:latest
    container_name: postgres-container
    restart: always
    environment:
      POSTGRES_USER: kullanici_adi
      POSTGRES_PASSWORD: sifre
      POSTGRES_DB: veritabani_adi
    ports:
      - "5432:5432"
    volumes:
      - postgres-data:/var/lib/postgresql/data

volumes:
  postgres-data:

Adım 2: PostgreSQL Container'ını Başlatma

Docker Compose ile PostgreSQL'i çalıştırın:

docker-compose up -d

Bu komut, PostgreSQL'i Docker üzerinde çalıştırır ve belirtilen ayarlarla yapılandırır: - Kullanıcı Adı: POSTGRES_USER - Şifre: POSTGRES_PASSWORD - Veritabanı: POSTGRES_DB

Container'ın çalıştığını doğrulamak için:

docker ps

Adım 3: Veritabanına Erişim Testi

Docker container'ına erişmek için:

docker exec -it postgres-container psql -U kullanici_adi -d veritabani_adi

3. Django Projesine Entegrasyon

Adım 1: psycopg2 Kurulumu

PostgreSQL ile Django arasındaki bağlantıyı sağlamak için psycopg2 kütüphanesini yükleyin:

pip install psycopg2

Adım 2: settings.py Dosyasını Yapılandırma

Django projenizdeki settings.py dosyasını PostgreSQL ile çalışacak şekilde düzenleyin:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'veritabani_adi',         # POSTGRES_DB
        'USER': 'kullanici_adi',          # POSTGRES_USER
        'PASSWORD': 'sifre',              # POSTGRES_PASSWORD
        'HOST': 'localhost',              # Django Docker dışında çalışıyorsa
        'PORT': '5432',                   # Docker'da belirtilen port
    }
}

Eğer Django da Docker içinde çalışıyorsa HOST değerini postgres-container olarak ayarlayın:

'HOST': 'postgres-container',

Adım 3: Veritabanı Yapısını Hazırlama

Django veritabanı tablolarını oluşturmak için şu komutları çalıştırın:

python manage.py makemigrations
python manage.py migrate

Adım 4: Admin Kullanıcı Oluşturma

Django admin paneline erişim için bir yönetici hesabı oluşturun:

python manage.py createsuperuser

4. PostgreSQL ve Django ile Çalışma

Container Yönetimi

  • Container’ı Durdurmak: bash docker-compose down
  • Container’ı Yeniden Başlatmak: bash docker-compose up -d

Logları Kontrol Etme

PostgreSQL loglarını kontrol etmek için:

docker logs postgres-container

5. Sorun Giderme

Bağlantı Sorunları

  • Docker çalışıyor mu? bash docker ps
  • Port çakışması: Eğer 5432 başka bir uygulama tarafından kullanılıyorsa, docker-compose.yml dosyasında portu değiştirin: ```yaml ports:
    • "5433:5432" `` Django'da daPORTdeğerini5433` olarak değiştirin.

Yetkilendirme Hataları

  • PostgreSQL kullanıcı adı ve şifresini kontrol edin.
  • Container içinde şifreyi değiştirmek için: bash docker exec -it postgres-container psql -U kullanici_adi ALTER USER kullanici_adi PASSWORD 'yeni_sifre';

6. Özet

Bu rehber ile PostgreSQL'i Docker üzerinde çalıştırabilir ve Django projenizle entegre edebilirsiniz. Daha fazla bilgiye ihtiyacınız olursa, Docker PostgreSQL Belgeleri ve Django Veritabanı Ayarları bağlantılarını inceleyebilirsiniz.

Koi Fish Circle
“Draw multiple koi fish overlapping in a circular, swirling formation, each with bold black outlines and patterned scales. Keep the design tight and central so it appears as a floating 2D object on a white background, leaving a clear margin around all edges.”