Takip et

Sequelize Migrations ile Yeni Sütun Ekleme: Adım Adım Anlatım

Sequelize Migrations ile Yeni Sütun Ekleme: Adım Adım Anlatım

Sequelize, Node.js uygulamalarınızda veritabanı işlemlerini kolaylaştıran güçlü bir ORM (Object-Relational Mapper) kütüphanesidir. Bu makalede, Sequelize migrations kullanarak veritabanınıza yeni bir sütun ekleme adımlarını detaylı bir şekilde ele alacağız. Öncelikle, migrations’ın ne olduğunu ve neden kullanılması gerektiğini anlamak önemlidir. Migrations, veritabanı şemanızdaki değişiklikleri izlemek ve yönetmek için kullanılan sürüm kontrollü bir yaklaşımdır. Bu sayede, değişiklikleri geri almak veya farklı ortamlarda (geliştirme, test, üretim) tutarlı bir veritabanı yapısı sağlamak mümkün olur. Kısacası, migrations geliştirme sürecinizi daha güvenilir ve yönetilebilir hale getirir.

Gerekli Kurulumlar

Başlamadan önce, projenizde Sequelize ve gerekli veritabanı sürücüsünün kurulu olduğundan emin olun. Örneğin, PostgreSQL kullanıyorsanız, npm install sequelize pg pg-hstore komutunu çalıştırmanız gerekecektir. Veritabanı bağlantı bilgilerinizi de doğru bir şekilde yapılandırmanız önemlidir. Bu bilgiler genellikle bir konfigürasyon dosyasında (örneğin, config/config.json) saklanır.

Yeni Bir Migration Oluşturma

Sequelize, yeni migrations oluşturmak için komut satırı aracı sağlar. Projenizin kök dizininde aşağıdaki komutu çalıştırarak yeni bir migration dosyası oluşturabilirsiniz:

npx sequelize-cli migration:generate --name add-column-to-users

Bu komut, migrations dizininizde add-column-to-users.js adında bir dosya oluşturacaktır. Bu dosya, yeni sütunun eklenmesi için gerekli kodları içerecektir.

Migration Dosyasının Düzenlenmesi

Oluşturulan migration dosyasını açarak, up ve down fonksiyonlarını düzenleyeceğiz. up fonksiyonu, veritabanına yeni sütunu eklemek için kullanılan kodları, down fonksiyonu ise sütunu silmek için kullanılan kodları içerir. Örneğin, users tablosuna age adında bir integer tipi sütun eklemek için aşağıdaki kodları kullanabilirsiniz:


'use strict';
module.exports = {
  async up(queryInterface, Sequelize) {
    await queryInterface.addColumn('Users', 'age', {
      type: Sequelize.INTEGER,
      allowNull: true, // Null değerlere izin verilip verilmeyeceğini belirler.
    });
  },
  async down(queryInterface, Sequelize) {
    await queryInterface.removeColumn('Users', 'age');
  },
};

Bu kodda, queryInterface.addColumn fonksiyonu yeni sütunu ekler. allowNull: true parametresi, sütunun boş bırakılmasına izin verip vermediğini belirler. down fonksiyonunda ise queryInterface.removeColumn fonksiyonu ile sütun silinir. Bu, migration’ı geri alma işlemini sağlar.

Migration’ı Uygulama

Migration dosyasını düzenledikten sonra, aşağıdaki komutu çalıştırarak değişiklikleri veritabanınıza uygulayabilirsiniz:

npx sequelize-cli db:migrate

Bu komut, oluşturduğunuz migration dosyasındaki up fonksiyonunu çalıştırarak veritabanınıza yeni sütunu ekleyecektir. Eğer bir hata oluşursa, down fonksiyonu otomatik olarak çalıştırılarak değişiklikler geri alınır. Bu, hata yönetimi açısından oldukça önemlidir.

Sonuç

Bu makalede, Sequelize migrations kullanarak yeni bir sütun ekleme adımlarını adım adım açıkladık. Migrations, veritabanı şemanızı yönetmek için düzenli ve güvenli bir yöntem sunar. Bu yaklaşımı kullanarak, veritabanı değişikliklerini izleyebilir, geri alabilirsiniz ve farklı ortamlar arasında tutarlılık sağlayabilirsiniz. Daha fazla bilgi için Sequelize resmi dokümanlarına göz atabilirsiniz. Ayrıca, Node.js ve Sequelize ile ilgili daha fazla içeriğe fatihsoysal.com adresinden ulaşabilirsiniz.

#Etiketler: Sequelize, Migrations, Veritabanı, Yeni Sütun, Node.js, ORM, Veritabanı Göçleri, Sequelize Migrations Örneği, Javascript, Veritabanı Yönetimi

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.