0Pricing
Ruby Academy · Ders

Geçişler

Şemayı geliştirme

Geçişler, CoddyKit'te ücretsiz bir Ruby Academy dersidir. Bu, 4 dersinin 2. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Ruby Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Ruby Academy kursu toplamda 4 dersten oluşur.

Geçiş Nedir?

Bir geçiş, tablo oluşturmak veya sütun eklemek gibi veritabanı şemasındaki bir değişikliği açıklayan, sürümlenmiş bir Ruby dosyasıdır.

  • Geçişler kod olduğundan sürüm denetiminde tutulur.
  • Ekipteki herkes aynı değişiklikleri aynı sırayla uygular.
  • Veritabanını hiçbir zaman el ile düzenlemezsiniz.

Geçiş Oluşturma

Rails sizin için geçiş dosyaları oluşturur. Örneğin rails generate migration CreateUsers, db/migrate/ içinde zaman damgalı bir dosya oluşturur. Zaman damgası, geçişlerin çalıştırılma sırasını belirler.

Tablo Oluşturma

Bir geçiş, change yöntemini tanımlar. create_table bir tablo oluşturur; t.timestamps ise created_at ve updated_at değerlerini otomatik olarak ekler.

class CreateUsers < ActiveRecord::Migration[7.1]
  def change
    create_table :users do |t|
      t.string :name
      t.string :email
      t.timestamps
    end
  end
end

Sütun Türleri

Yaygın sütun türleri veritabanı türlerine karşılık gelir:

  • string kısa metin.
  • text uzun metin.
  • integer, float, decimal sayılar.
  • boolean doğru/yanlış.
  • datetime, date zaman değerleri.
create_table :products do |t|
  t.string :title
  t.text :description
  t.decimal :price
  t.boolean :active
  t.timestamps
end

Geçişleri Çalıştırma

rails db:migrate, bekleyen tüm geçişleri uygular ve schema.rb dosyasını günceller. Rails, hangi geçişlerin çalıştırıldığını bir schema_migrations tablosuna kaydeder; böylece her geçiş yalnızca bir kez çalışır.

Sütun Ekleme

Mevcut bir tabloyu genişletmek için bir geçiş oluşturup add_column kullanın. Tabloyu, sütun adını, türünü ve seçenekleri belirtirsiniz.

class AddAgeToUsers < ActiveRecord::Migration[7.1]
  def change
    add_column :users, :age, :integer, default: 0
  end
end

Geri Alma

rails db:rollback, son geçişi geri alır. İşlemler geri döndürülebilir olduğunda (örneğin add_column veya create_table), Rails bir change yöntemini otomatik olarak tersine çevirir.

Geri Döndürülemeyen Değişiklikler

Ham SQL çalıştırmak veya veri içeren bir sütunu kaldırmak gibi bazı işlemler otomatik olarak tersine çevrilemez. Bu işlemler için açıkça up ve down yöntemlerini tanımlayın; böylece Rails değişikliği nasıl geri alacağını bilir.

class ChangeData < ActiveRecord::Migration[7.1]
  def up
    execute "UPDATE users SET active = TRUE"
  end

  def down
    execute "UPDATE users SET active = FALSE"
  end
end

İndeksler

Yabancı anahtar veya oturum açmak için kullanılan e-posta gibi sık sorguladığınız bir sütundaki aramaları hızlandırmak için bir indeks ekleyin. Veritabanı düzeyinde benzersizliği de zorunlu kılmak için unique: true kullanın.

class AddIndexToUsersEmail < ActiveRecord::Migration[7.1]
  def change
    add_index :users, :email, unique: true
  end
end

Geçişler ve schema.rb

Geçişler değişikliklerin geçmişidir; schema.rb ise mevcut anlık görüntüdür. Yeni geliştiriciler, her geçişi yeniden çalıştırmak yerine anlık görüntüden veritabanını anında oluşturmak için rails db:schema:load komutunu çalıştırabilir.

En İyi Uygulamalar

Geçişleri güvenli tutun:

  • Paylaşılan ortamlarda çalıştırılmış bir geçişi hiçbir zaman düzenlemeyin; yeni bir geçiş yazın.
  • Her geçişi tek bir değişikliğe odaklayın.
  • Bütünlük için veritabanı düzeyinde kısıtlamalar ekleyin (null: false, indeksler).

Hızlı Kontrol

Geçişler konusundaki anlayışınızı sınayın.

Özet: Geçişler

Şemayı güvenli biçimde geliştirmeyi öğrendiniz:

  • Geçişler sürümlenmiş ve kayda geçirilmiş şema değişiklikleridir.
  • create_table, add_column ve add_index tabloları şekillendirir.
  • db:migrate uygular; db:rollback geri alır.
  • Geri döndürülemeyen değişiklikler için up/down kullanın.
  • schema.rb mevcut anlık görüntüdür.

Sırada modelleri ilişkilerle birbirine bağlayacağız.

Sıkça Sorulan Sorular

“Geçişler” dersi ücretsiz mi?

Evet — “Geçişler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Ruby Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Ruby Academy kursu toplamda 4 dersten oluşur.

“Geçişler” dersinde ne öğreneceğim?

Şemayı geliştirme Ruby Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Ruby Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Ruby Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 2. dersidir.

“Geçişler” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Ruby Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Ruby Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Active Record Temelleri
  2. Geçişler
  3. İlişkilendirmeler
  4. Doğrulamalar ve Sorgular
← Ruby Academy Sayfasına Dön