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
endSütun Türleri
Yaygın sütun türleri veritabanı türlerine karşılık gelir:
stringkısa metin.textuzun metin.integer,float,decimalsayılar.booleandoğru/yanlış.datetime,datezaman değerleri.
create_table :products do |t|
t.string :title
t.text :description
t.decimal :price
t.boolean :active
t.timestamps
endGeç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
endGeri 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
endGeç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_columnveadd_indextabloları şekillendirir.db:migrateuygular;db:rollbackgeri alır.- Geri döndürülemeyen değişiklikler için
up/downkullanın. schema.rbmevcut 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.