Sequelize ORM Migration ve Seed İşlemleri
Sequelize ORM Migration ve Seed İşlemleri
Node.js tabanlı projelerde en popüler ORM araçlarından biri olan Sequelize, veri tabanı işlemlerini kod ile yönetmek isteyen geliştiriciler için büyük kolaylıklar sağlar. Sequelize ORM Migration ve Seed işlemleri, veritabanı şemasını yönetmek ve test veya demo verileri eklemek için önemli araçlar sunar. Bu makalede, migration ve seed kavramlarını, bunların nasıl uygulanacağını ve karşılaşabileceğiniz temel sorunları detaylı bir şekilde inceleyeceğiz.
Sequelize Migration Nedir ve Nasıl Kullanılır?
Migration (göç), veritabanı şemasındaki değişikliklerin kod ve version control (örn. Git) ile yönetilmesini sağlayan bir işlemdir. Migration'lar, tablo ekleme/silme, kolon güncelleme veya ilişkileri tanımlama gibi tüm yapısal değişikliklerin izlenebilir ve tekrarlanabilir olmasını sağlar. Sequelize ORM Migration komutları ile projenizin veritabanı yapısını sürekli güncel tutabilirsiniz.
Migration Oluşturmak
npx sequelize-cli migration:generate --name users-table
Yukarıdaki komut yeni bir migration dosyası oluşturur. "users-table" migration adı örnek olarak verilmiştir. Oluşan dosyada up() ve down() fonksiyonlarını düzenlemelisiniz:
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.createTable('Users', {
id: {
allowNull: false,
autoIncrement: true,
primaryKey: true,
type: Sequelize.INTEGER
},
username: {
type: Sequelize.STRING
},
createdAt: {
allowNull: false,
type: Sequelize.DATE
},
updatedAt: {
allowNull: false,
type: Sequelize.DATE
}
});
},
down: async (queryInterface) => {
await queryInterface.dropTable('Users');
}
};
Migration Uygulamak ve Geri Almak
npx sequelize-cli db:migrate # Tüm migrationları uygular
npx sequelize-cli db:migrate:undo # Son migrationı geri alır
Seed İşlemleri: Dummy Veri Ekleme
Seed işlemleri, özellikle geliştirme ve test aşamasında, veritabanına örnek veya başlangıç verileri eklemenizi sağlar. Sequelize ORM Migration ve Seed İşlemleri birlikte kullanıldığında hem şemanız hem de örnek veriniz tamamen kontrolünüzde olur.
Seed Dosyası Oluşturmak ve Kullanmak
npx sequelize-cli seed:generate --name demo-user
Seed dosyasında bulkInsert ve bulkDelete metodları ile veri ekleme/çıkarma işlemleri gerçekleştirilir:
'use strict';
module.exports = {
up: async (queryInterface, Sequelize) => {
await queryInterface.bulkInsert('Users', [{
username: 'test_user',
createdAt: new Date(),
updatedAt: new Date()
}], {});
},
down: async (queryInterface, Sequelize) => {
await queryInterface.bulkDelete('Users', null, {});
}
};
Seed Uygulamak ve Geri Almak
npx sequelize-cli db:seed:all # Bütün seed dosyalarını çalıştır
npx sequelize-cli db:seed:undo:all # Tüm eklenen dummy verileri sil
Sonuç: Modern Projelerde Migration ve Seed’in Önemi
Sequelize ORM Migration ve Seed işlemleri, takım ile geliştirilen projelerde kodla yönetilebilen, güvenli ve pratik bir altyapı sunar. Migration ile veritabanı şeması üzerinde tam kontrol sağlarken, seed ile farklı ortamlarda tekrarlanabilir örnek verilerle hızlı testler gerçekleştirilebilir. Özellikle büyük, ölçeklenebilir uygulamalarda bu pratikler kod kalitesi ve sürdürülebilirlik açısından önemlidir. Sequelize ORM'i doğru konfigüre ederek migration ve seed işlemlerinde maksimum verim, minimum hata elde edebilirsiniz.

Yorum Gönder