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)
Benzer konular
- Cevaplar
- 2
- Görüntüleme
- 13
- Cevaplar
- 2
- Görüntüleme
- 28
- Cevaplar
- 1
- Görüntüleme
- 16
- Cevaplar
- 0
- Görüntüleme
- 62
- Cevaplar
- 2
- Görüntüleme
- 11