Metin2Games Discord sunucusuna katılmak ve anlık destek almak için tıkla!
1
Kayıtlı
1 Yıl 9 Ay 26 Gün
Katılım
10 Ocak 2025
Konular
163
Mesajlar
257
Tepkime puanı
36
Online süresi
11h 19m
Puan
53
Konum
Türkiye
Web sitesi
www.zyncra.shop
Drizzle ORM + PostgreSQL ile Next.js 15 Admin Paneli

324238_e284a4b245e54f44471b9cc847fcce13.png

📌 Konu İçeriği — Hızlı Bakış (📂 cPanel / Web • ⏱ ~3 dk okuma • 💻 Kod: C#)
01. Drizzle ORM ve PostgreSQL ile Next.js 15 Admin Paneli
02. Kullanılan teknolojiler
03. 1. Proje kurulumu
04. 2. Veritabanı bağlantısı
05. 3. Veritabanı tabloları
06. 4. Migration işlemleri







Drizzle ORM ve PostgreSQL ile Next.js 15 Admin Paneli

Merhaba arkadaşlar,

Bu yazıda Next.js 15, PostgreSQL ve Drizzle ORM kullanarak basit bir admin panelinin temelini inceleyeceğiz.

Kullanılan teknolojiler

  • Next.js 15: Uygulama geliştirme
  • PostgreSQL: Veritabanı yönetimi
  • Drizzle ORM: Veritabanı sorguları
  • Drizzle Kit: Migration işlemleri
  • Zod: Veri doğrulama

1. Proje kurulumu

Öncelikle yeni bir Next.js projesi oluşturalım.

Terminal üzerinden şu komutları çalıştırabiliriz:

npx create-next-app@15 drizzle-admin

cd drizzle-admin

Gerekli paketleri yükleyelim:

npm install drizzle-orm pg dotenv zod

npm install -D drizzle-kit @types/pg

2. Veritabanı bağlantısı

PostgreSQL üzerinde drizzle_admin adında bir veritabanı oluşturalım.

Projenin ana dizinindeki .env dosyasına veritabanı bağlantı adresimizi ekleyelim.

DATABASE_URL değişkeni, PostgreSQL sunucusunun adresini, kullanıcı bilgilerini ve veritabanı adını içerir.

Güvenlik açısından bu bilgileri herkese açık depolarda paylaşmamalıyız.

3. Veritabanı tabloları

Örneğimizde iki temel tablo kullanacağız.

Customers tablosu müşterilerin adını, e-posta adresini ve kayıt tarihini tutar.

Invoices tablosu ise müşterilere ait faturaları, tutarları, durum bilgilerini ve oluşturulma tarihlerini saklar.

Her fatura bir müşteriye bağlıdır. Bu ilişki, veritabanındaki foreign key yani yabancı anahtar ile sağlanır.

E-posta alanına benzersizlik kuralı ekleyerek aynı e-posta adresiyle birden fazla müşteri oluşturulmasını engelleyebiliriz.

4. Migration işlemleri

Drizzle Kit, veritabanı şemasındaki değişiklikleri yönetmemize yardımcı olur.

Migration dosyalarını oluşturmak için:

npx drizzle-kit generate

Oluşturulan değişiklikleri veritabanına uygulamak için:

npx drizzle-kit migrate

Bu yöntem sayesinde veritabanındaki değişiklikleri takip edebilir ve geliştirme sürecini daha düzenli yönetebiliriz.

5. Örnek veriler

Geliştirme sırasında test amacıyla örnek müşteriler ve faturalar ekleyebiliriz.

Örneğin bir müşteri oluşturup bu müşteriye ait bir fatura kaydedebiliriz.

Ancak örnek veri ekleme işlemini tekrar çalıştırdığımızda aynı kayıtların çoğalmamasına dikkat etmeliyiz.

6. Tip güvenli sorgular

Drizzle ORM, TypeScript ile birlikte çalışarak veritabanı sorgularında tip güvenliği sağlar.

Bu sayede müşterileri listelemek, belirli bir müşterinin faturalarını getirmek ve kayıtları güncellemek daha kontrollü hale gelir.

Ayrıca ilişkisel sorgular sayesinde müşteri bilgileriyle birlikte müşteriye ait faturaları da alabiliriz.

7. Next.js ile admin paneli

Next.js App Router kullanarak müşterileri listeleyen bir sayfa oluşturabiliriz.

Veritabanı sorgularını sunucu tarafında çalıştırmak, bağlantı bilgilerinin tarayıcıya gönderilmesini önlemeye yardımcı olur.

Admin panelinde müşteri ekleme, düzenleme ve silme işlemleri de geliştirilebilir.

Bu işlemlerde kullanıcı doğrulaması, yetkilendirme ve form doğrulaması mutlaka uygulanmalıdır.

8. Güvenlik ve performans

Gerçek projelerde aşağıdaki konulara dikkat edilmelidir:

  • Veritabanı bilgilerini gizli tutmak
  • Kullanıcı girişlerini doğrulamak
  • Admin işlemlerinde yetkilendirme uygulamak
  • Migration dosyalarını düzenli tutmak
  • Büyük veri kümelerinde sayfalama kullanmak
  • Veritabanı yedeklerini almak

Sonuç

Next.js 15, PostgreSQL ve Drizzle ORM kullanarak tip güvenli sorgulara ve ilişkisel veri yönetimine sahip bir admin paneli geliştirebiliriz.

Drizzle ORM'nin SQL'e yakın yapısı, veritabanı işlemlerini anlaşılır hale getirirken TypeScript desteği geliştirme sırasında oluşabilecek hataları azaltmaya yardımcı olur.

Siz projelerinizde Drizzle ORM mi yoksa Prisma gibi alternatifleri mi tercih ediyorsunuz? Deneyimlerinizi paylaşabilirsiniz.

C# Servis Örneği
C#:
public sealed class DrizzleOrmPostgresqlService
{
    public async Task<bool> WebgelistirmeAsync(string requestId, CancellationToken ct = default)
    {
        ArgumentException.ThrowIfNullOrWhiteSpace(requestId);
        using var timeout = CancellationTokenSource.CreateLinkedTokenSource(ct);
        timeout.CancelAfter(TimeSpan.FromSeconds(5));
        await Task.Yield();
        return requestId.Length >= 8;
    }
}

Sıkça Sorulan Sorular (SSS)
Soru 1: Drizzle ORM + PostgreSQL ile Next.js 15 Admin Paneli neden önemlidir?
Doğru yapılandırma ve güncel standartların uygulanması hem sistem kararlılığını artırır hem de olası hataları ve zaman kaybını en baştan engeller.

Soru 2: Uygulama adımlarında sorun yaşarsam ne yapmalıyım?
Konu içerisindeki adımları ve yapılandırma detaylarını sırasıyla kontrol edebilir, takıldığınız noktaları bu konunun altına yorum olarak yazarak destek alabilirsiniz.
 
Community platform by XenForo® © 2010-2026 XenForo Ltd.
© 2020-2026 Metin2Games - Tüm Hakları Saklıdır.
Geri
Üst