0Pricing
Learn Rust Coding · Ders

Geçişler

Şemayı geliştirin

Geçişler, CoddyKit'te ücretsiz bir Learn Rust Coding dersidir. Bu, 4 dersinin 4. 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, Learn Rust Coding öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn Rust Coding kursu toplamda 4 dersten oluşur.

Geçişler neden gerekli?

Geçiş, tablo veya sütun eklemek gibi veritabanı şemanızda sürümlendirilmiş bir değişikliktir. Şemanızın güvenli ve tekrarlanabilir biçimde gelişmesini sağlar.

  • Sürüm denetiminde izlenir
  • Sırayla ve tam olarak bir kez uygulanır

sqlx-cli aracı

sqlx, geçişleri yönetmek için bir CLI sunar. Bunu cargo ile bir kez yükleyin.

cargo install sqlx-cli --no-default-features --features postgres

Geçiş oluşturma

sqlx migrate add, migrations/ klasöründe zaman damgalı bir SQL dosyası oluşturur. Sıralamayı zaman damgası belirler.

sqlx migrate add create_users

Geçiş SQL'i yazma

Her geçiş dosyası, şemayı ileri taşımak için gereken SQL'i içerir. Her dosyada tek bir mantıksal değişiklik bulundurun.

CREATE TABLE users (
    id   SERIAL PRIMARY KEY,
    name TEXT NOT NULL,
    email TEXT
);

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

sqlx migrate run, DATABASE_URL üzerinde bekleyen tüm geçişleri uygular ve her birini bir izleme tablosuna kaydeder.

sqlx migrate run

İzleme tablosu

sqlx, uygulanan geçişleri _sqlx_migrations içinde kaydeder; sürümü ve sağlama toplamını saklayarak bir geçişi yeniden uygulamasını veya sessizce değiştirmesini önler.

Geri alınabilir geçişler

Ayrı yukarı ve aşağı dosyaları oluşturmak ve geri alabilmek için -r bayrağını ekleyin. sqlx migrate revert en son aşağı dosyasını çalıştırır.

sqlx migrate add -r create_posts

Geçiş izlemeyi modelleme

Bir geçiş çalıştırıcısı yalnızca son uygulanan sürümden daha yeni sürümleri uygular. Bu çalıştırılabilir örnek, bu kararı modeller.

fn pending(all: &[u32], applied: u32) -> Vec<u32> {
    all.iter().cloned().filter(|v| *v > applied).collect()
}

fn main() {
    let migrations = [1, 2, 3, 4];
    let last_applied = 2;
    println!("{:?}", pending(&migrations, last_applied));
}

Geçişleri ikili dosyaya gömme

migrate! makrosu geçiş klasörünü ikili dosyanıza gömer; böylece uygulama bunları başlangıçta uygulayabilir ve üretimde CLI gerekmez.

use sqlx::{Pool, Postgres};

async fn migrate(pool: &Pool<Postgres>) {
    sqlx::migrate!("./migrations")
        .run(pool)
        .await
        .unwrap();
}

Sağlama toplamları ve değişmezlik

Daha önce çalıştırılmış bir geçişi asla düzenlemeyin. sqlx bir sağlama toplamı saklar ve geçmişteki bir geçişin içeriği değişirse devam etmeyi reddeder. Bunun yerine yeni bir geçiş ekleyin.

İdempotent SQL

Yeni bir ortamda yeniden çalıştırmayı güvenli ve öngörülebilir kılmak için ifadeleri IF NOT EXISTS ile koruyun.

CREATE TABLE IF NOT EXISTS tags (
    id   SERIAL PRIMARY KEY,
    name TEXT NOT NULL UNIQUE
);

Hızlı Kontrol

Geçişleri anlayıp anlamadığınızı test edin.

Özet

Şema geçişlerini öğrendiniz:

  • Geçişler sıralı ve sürümlendirilmiş şema değişiklikleridir
  • sqlx migrate add/run/revert bunları yönetir
  • Uygulanan sürümler ve sağlama toplamları _sqlx_migrations içinde bulunur
  • migrate! bunları başlangıçta uygulamak üzere gömer
  • Uygulanmış bir geçişi asla düzenlemeyin; yenisini ekleyin

sqlx kursu burada tamamlanıyor.

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 Learn Rust Coding kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn Rust Coding kursu toplamda 4 dersten oluşur.

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

Şemayı geliştirin Learn Rust Coding 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.

Learn Rust Coding öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn Rust Coding, 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 4. 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 Learn Rust Coding dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn Rust Coding 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. Veritabanına Bağlanma
  2. Derleme Zamanında Denetlenen Sorgular
  3. CRUD İşlemleri
  4. Geçişler
← Learn Rust Coding Sayfasına Dön