0Pricing
SQL Academy · Ders

Araçlar: Flyway, Liquibase, Sqitch

Yaygın şema geçişi araçlarını, sürümleme modellerini ve CI entegrasyonlarını karşılaştırın.

Araçlar: Flyway, Liquibase, Sqitch, CoddyKit'te ücretsiz bir SQL Academy 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, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.

Geçiş Araçları Neden Kullanılır?

Şema değişiklikleri:

  • Kaynak denetiminde sürümlendirilmelidir
  • Belirli ve değişmez bir sırayla uygulanmalıdır
  • CI/CD içinde otomatik olarak çalıştırılmalıdır
  • Geri alınabilir olmalıdır (bazı durumlarda)

Flyway

Java tabanlı, dosya tabanlı geçişlerdir. Her dosya bir sürüm ön ekiyle adlandırılır:

-- V1__create_users.sql
CREATE TABLE users (id BIGSERIAL PRIMARY KEY, email TEXT NOT NULL);

-- V2__add_full_name.sql
ALTER TABLE users ADD COLUMN full_name TEXT;

-- Flyway tracks applied migrations in a flyway_schema_history table.

Flyway CLI

Geçişleri uygulayın:

flyway -url=jdbc:postgresql://localhost/mydb -user=app migrate
flyway info        # show what would run
flyway repair      # fix the history table after a failure

Liquibase

XML/YAML/JSON tabanlı (veya SQL tabanlı) "değişiklik kümeleri" kullanır. Flyway'den daha ayrıntılıdır, ancak farklı veri tabanları arasında soyutlamaları destekler:

<!-- changeset alice:001 -->
<createTable tableName="users">
  <column name="id" type="bigserial" autoIncrement="true">
    <constraints primaryKey="true"/>
  </column>
  <column name="email" type="text"><constraints nullable="false"/></column>
</createTable>

Liquibase Geri Alma Desteği

Her değişiklik kümesi bir geri alma eylemi tanımlayabilir. Liquibase son N değişikliği geri alabilir:

liquibase rollbackCount 1

Sqitch

Yerel SQL kullanır; sürüm numarası sıralaması yoktur ve bunun yerine açık bir bağımlılık DAG'ı kullanır. Her değişiklik için dağıtma, doğrulama ve geri alma betikleri bulunur:

sqitch add add_users -n 'Add users table'
# edits deploy/add_users.sql, verify/add_users.sql, revert/add_users.sql
sqitch deploy db:pg://localhost/mydb

Üç Aracın Karşılaştırması

FlywayLiquibaseSqitch
BiçimSQLXML/YAML/JSONSQL
SürümlendirmeSıralıSıralıDAG
Geri almaSınırlıYerelYerel
Doğrulama adımıYokİsteğe bağlıYerleşik

Çatıya Özgü Araçlar

Birçok web çatısının kendine özgü araçları vardır:

  • Rails: ActiveRecord geçişleri
  • Django: yerleşik geçişler
  • Node: knex, sequelize, prisma migrate
  • NestJS: TypeORM geçişleri

CI İş Akışı

Standart işlem akışı:

  1. PR yeni geçiş dosyasını içerir
  2. CI boş bir PostgreSQL başlatır ve tüm geçişleri çalıştırır
  3. Taşınmış şemaya karşı otomatik testleri çalıştırın
  4. Birleştirme sonrasında dağıtımı yapın ve geçişleri önce hazırlık, ardından üretim ortamında çalıştırın

Tekrarlanabilir Geçişler

Flyway, her değişiklikte yeniden çalıştırılan "R__" tekrarlanabilir geçişlerine sahiptir. VIEW'lar ve saklı yordamlar için uygundur:

-- R__users_view.sql  (re-applied whenever its checksum changes)
CREATE OR REPLACE VIEW active_users AS
  SELECT id, email FROM users WHERE deleted_at IS NULL;

Şema Farklılaşmasını Algılama

Beklenen ve gerçek şema arasındaki farklılaşmayı algılamak için migra, schemahero veya pgquarrel kullanın.

Özet

Bir araç seçin ve ona bağlı kalın.

  • Flyway — SQL öncelikli, basit
  • Liquibase — bildirimsel, soyutlama katmanları
  • Sqitch — DAG bağımlılıkları, geri alma öncelikli
  • Her zaman: kaynak denetiminde sürümlendirin, CI içinde otomatikleştirin

Hızlı Kontrol

Geçişler arasındaki bağımlılıklar için sıralı sürüm numaraları yerine yerel olarak açık bir DAG kullanan araç hangisidir?

Sıkça Sorulan Sorular

“Araçlar: Flyway, Liquibase, Sqitch” dersi ücretsiz mi?

Evet — “Araçlar: Flyway, Liquibase, Sqitch” 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 SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.

“Araçlar: Flyway, Liquibase, Sqitch” dersinde ne öğreneceğim?

Yaygın şema geçişi araçlarını, sürümleme modellerini ve CI entegrasyonlarını karşılaştırın. SQL 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.

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

Önceden deneyim gerekmez. CoddyKit'te SQL 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 4. dersidir.

“Araçlar: Flyway, Liquibase, Sqitch” 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 SQL Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her SQL 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. Çevrimiçi Geçişler: ALTER TABLE Neden Kilitler
  2. Eşzamanlı INDEX'ler (CREATE INDEX CONCURRENTLY)
  3. Kesinti Olmadan Sütun Adı Değiştirme
  4. Araçlar: Flyway, Liquibase, Sqitch
← SQL Academy Sayfasına Dön