Debate

Knex Migration Kullanımı

Iniciado por IronSpecter · 29 jul 2026 06:10 · 2 Visitas · 0 Respuestas
Autor del tema #0
Knex.js, Node.js uygulamaları için güçlü ve esnek bir SQL sorgu oluşturucu olarak bilinir. Bu kütüphane ile birlikte gelen migration (göç) sistemi, veritabanı şemasını yönetmek için oldukça kullanışlı bir araçtır. Migration'lar, veritabanındaki tabloların oluşturulması, güncellenmesi veya silinmesi gibi işlemleri sürüm kontrolü altında tutmamıza olanak tanır. Bu sayede, projelerimizde veritabanı değişikliklerini kolay bir şekilde takip edebiliriz.

Migration oluşturmak için öncelikle Knex kurulumunu yapmalıyız. Aşağıdaki komutu terminalde çalıştırarak Knex'i projemize ekleyebiliriz:

CODE
1npm install knex --save


Daha sonra, migration dosyalarımızı oluşturmak için şu komutu kullanıyoruz:

CODE
1npx knex migrate:make migration_adi


Bu komut, migrations klasöründe yeni bir dosya oluşturur. Örneğin, bir "users" tablosu oluşturmak için şu şekilde bir migration yazabiliriz:

CODE
123456789101112exports.up = function(knex) {
  return knex.schema.createTable('users', function(table) {
    table.increments('id').primary();
    table.string('name').notNullable();
    table.string('email').notNullable().unique();
    table.timestamps(true, true);
  });
};

exports.down = function(knex) {
  return knex.schema.dropTable('users');
};


Yukarıdaki kodda, up fonksiyonu veritabanına yeni bir tablo eklerken, down fonksiyonu bu tablonun geri alınmasını sağlar. Migration'ı çalıştırmak için şu komutu kullanabiliriz:

CODE
1npx knex migrate:latest


Bu komut, tüm migration dosyalarını sırayla çalıştırarak veritabanımızı günceller. Eğer bir hata ile karşılaşır veya bir migration'ı geri almak isterseniz, şu komutu kullanabilirsiniz:

CODE
1npx knex migrate:rollback


Sonuç olarak, Knex migration sistemi, veritabanı şemasını yönetmek için oldukça etkili bir yöntem sunmaktadır. Geliştirme süreçlerimizi daha düzenli ve yönetilebilir hale getirir. Migration'ların iyi bir şekilde kullanılması, projelerin sürdürülebilirliği açısından büyük önem taşır. Bu konuda daha fazla örnek veya bilgi arayışınız varsa, lütfen belirtin.

Debes haber iniciado sesión para responder.

0 citas seleccionadas