Liquibase ile Veritabanı Değişiklik Yönetimi

Kod Gemisi, Kasım 2016
selam@kodgemisi.com

Tansu Aksan

Liquibase nedir ?

  • Açık kaynak kodlu bir kütüphanedir.
  • Veri tabanı değişikliklerini takip etmek, yönetmek ve uygulamak için kullanılır.
  • Veri tabanı bağımsızdır.

Veri tabanı değişikleri

database migrations veya schema migrations

Neden gerekli ?

  • Yeni özellikler ekleme, tablolarda değikliklere sebep olabilir.
  • Bug fixler tablo isimlerinde ya da veri tiplerinde değişiklere sebep olabilir.
  • Performans sebebiyle veri tabanında değişikler yapmak gerekebilir.

Temel Kavramlar

Changelog file

Veri tabanına uygulanacak değişikler bu text-based dosyanın içine yazılır.

Change Set

Uygulanacak her bir değişiklik bir changesetdir. Bu change setler changelog dosyasını oluşturur.

Changes

Her bir changeset genel olarak bir tane change içerir. Bu change veri tabanında yapılacak olan değişiklikliği ifade eder.

Temel Kavramlar

Preconditions

Contexts

Genel Özellikler

  • Ant, Maven, komut satırı, Servlet  Listener,  Spring gibi birçok uygulanma yöntemi vardır.
  • Yaklaşık 10 tane veri tabanı desteği vardır.
  • Local veritabanına uygulanır.
  • İki veritabanı arasındaki değişiklerden changelog üretebilir. (liquibase:diff)
  • Hibernate entities ile veritabanı arasındaki değişikliklerden changelog üretebilir. (liquibase:diff)

Genel Özellikler

  • Bir veri tabanınından changelog üretebilir.(liquibase:generateChangeLog)
  • Veri tabanını güncel versiyona getirebilir. (liquibase:update)
  • Son X değişikliklerini geri alabilir. (rollback)
  • Veri tabanı değişikliklerini belirli tarih/zamana geri alabilir. (rollback)
  • Changelogları ayırıp yönetimi kolaylaştırma özelliği vardır.

Örnek Uygulama

  • Maven

  • Hibernate

  • Liquibase

Spring boot

Örnek Uygulama

liquibase.properties

Örnek Uygulama

pom.xml

changeLog files ($ mvn liquibase:diff)

Örnek Uygulama

Örnek Uygulama

changelog-master.xml

databasechangelog table ($ mvn liquibase:update)

Örnek Uygulama

Kaynakça

​           http://topluluk.ozguryazilim.com.tr/wp-content/uploads/liquibase_310312.pd

  • Miguel A. Laguna ( 09 Ocak 2015 ). Liquifying your project.   http://malaguna.github.io/blog/2015/06/09/liquifying-your-project/

  • Baeldung ( 21 Eylül 2016 ). Use Liquibase to Safely Evolve Your Database Schema. ​​​​​http://www.baeldung.com/liquibase-refactor-schema-of-java-app

  • Wikipedia ( 27 Eylül 2015  ). Liquibase.  https://en.wikipedia.org/wiki/Liquibase

Teşekkürler...

Liquibase ile Veritabanı Değişiklik Yönetimi

By KodGemisi

Liquibase ile Veritabanı Değişiklik Yönetimi

Liquibase ile Veritabanı Değişiklik Yönetimi

  • 1,809