Cancan.1234 1
Cancan.1234
lHezarfeNl 1
lHezarfeNl
Bodyguardd 1
Bodyguardd
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
mavzermete 1
mavzermete
kaptanmikro1 1
kaptanmikro1
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Bvural41 1
Bvural41
Reklam vermek için turkmmo@gmail.com

Drizzle ORM + PostgreSQL ile Next.js 15 Admin Paneli

  • Konuyu başlatan Konuyu başlatan VictoryasHD
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 3
  • Görüntüleme Görüntüleme 10

1792515174758.png

​

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.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst