Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Liquibase JFall 2011
Search
Daan van Berkel
November 08, 2011
Technology
50
0
Share
Liquibase JFall 2011
Introduction to Liquibase at JFall 2011
Daan van Berkel
November 08, 2011
More Decks by Daan van Berkel
See All by Daan van Berkel
Datomic JFall 2012
dvb
0
34
Other Decks in Technology
See All in Technology
もっとコンテンツをよく構造化して理解したいので、LLM 時代こそ Taxonomy の設計品質に目を向けたい〜!
morinota
0
200
ボトムアップの改善の火を灯し続けろ!〜支援現場で学んだ、消えないための3つの打ち手〜 / 20260509 Kazuki Mori
shift_evolve
PRO
2
580
自動テストだけで リリース判断できるチームへ - 鍵はテストの量ではなくリリース判断基準の再設計にあった / Redesigning Release Criteria for Lightweight Releases
ewa
7
3.5k
VespaのParent Childを用いたフィードパフォーマンスの改善
taking
0
270
Building Production-Ready Agents Microsoft Agent Framework
_mertmetin
0
160
AI時代の品質はテストプロセスの作り直し #scrumniigata
kyonmm
PRO
4
1.4k
[Oracle TechNight#99] 生成AI時代のAI/ML入門 ~ AIとオラクルデータベースの関係 (前半)
oracle4engineer
PRO
2
230
試作とデモンストレーション / Prototyping and Demonstrations
ks91
PRO
0
190
Agent Skillsで実現する記憶領域の運用とその後
yamadashy
2
1.3k
20260428_Product Management Summit_Loglass_JoeHirose
loglassjoe
4
7.2k
毎日の作業を Claude Code 経由にしたら、 ノウハウがコードになった
kossykinto
1
1k
Sociotechnical Architecture Reviews: Understanding Teams, not just Artefacts
ewolff
1
140
Featured
See All Featured
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
160
Heart Work Chapter 1 - Part 1
lfama
PRO
6
35k
Context Engineering - Making Every Token Count
addyosmani
9
860
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.9k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Believing is Seeing
oripsolob
1
120
Accessibility Awareness
sabderemane
1
110
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Making the Leap to Tech Lead
cromwellryan
135
9.8k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.1k
What does AI have to do with Human Rights?
axbom
PRO
1
2.1k
Transcript
Liquibase change databases fluently Daan van Berkel
Agenda •Agenda •Introduction •Anecdote •Antidote •Conclusion
Introduction •Daan van Berkel ◦ Married ◦ Child •Experience ◦
Luminis ◦ Topicus ◦ Sogyo ◦ Ratio http://www.linkedin.com/pub/daan-van-berkel/b/850/573
Anecdote
Anecdote Test Production •Testing Environment ◦ Java ◦ Oracle •Production
Environment ◦ Java ◦ Oracle
Anecdote Test Production Update procedure •Software ◦Version Control ◦Continous Build
◦War •Database ◦Manually Change Test ◦Record in Script ◦Sent Script
Anecdote Test Production "Common" Problems •Incomplete Script •Incomplete Installation •Ambiguous
State
Anecdote
Anecdote Test Production It gets worse!
Anecdote Test Production Developers work on Test Directly
Anecdote Test Production "Common" Problems •Incomplete Script •Incomplete Installation •Ambiguous
State •Premature Installation
Anecdote Test Production Start using local environment •Common problems ◦Incomplete
scripts ◦Incomplete installation •Different DB flavour
Antidote
Antidote Liquibase an open source, database-independent library for tracking, managing
and applying database changes www.liquibase.org
Antidote: introduction Liquibase •Changelog •Changeset •Log tables
Antidote: introduction Liquibase •Changelog ◦XML ◦Version control •Changeset •Log tables
<databaseChangeLog> ... </databaseChangeLog>
Antidote: introduction Liquibase •Changelog •Changeset ◦unique (author, id) ◦Semantics •Log
tables <changeSet id="1" author="dvberkel"> <createTable tableName="message"> <column name="id" type="bigint"> <constraints primaryKey="true"/> </column> <column name="content" type="varchar"/> </createTable> </changeSet>
Antidote: introduction Liquibase •Changelog •Changeset •Log tables ◦databasechangelog ◦databasechangeloglock
Antidote: Exploration Supported Databases •Popular Database •Run on JDBC •Extensible
http://wordle.net
Antidote: Exploration Supported changes •Structure •Quality •Integrity •Transformation
Antidote: Exploration Supported changes •Structure •Quality •Integrity •Transformation Structural Refactoring
• Add column • Rename column • Modify column • Drop column • Alter sequence • Create table • Rename table • Drop table • Create view • Rename view • Drop view • Merge columns • Stored procedure
Antidote: Exploration Supported changes •Structure •Quality •Integrity •Transformation Data quality
•Add lookup table •Add/remove constraint ◦not-null ◦unique •Create sequence •Drop sequence •Add auto-increment •Add default value •Drop default value
Antidote: Exploration Supported changes •Structure •Quality •Integrity •Transformation Referential Integrity
•Add / drop constraint ◦Foreign key ◦Primary
Antidote: Exploration Supported changes •Structure •Quality •Integrity •Transformation Transformation •CRUD
•Custom
Antidote: Demonstration Liquibase
Antidote: Evalutation •Database independent •Rich feature set •Process
Antidote: Evalutation •Database independent •Rich feature set •Process It was
easy to change the underlying database Wide variety in databases is supported
Antidote: Evalutation •Database indepent •Rich feature set •Process Great number
of possible changes Multiple options if your change is not present
Antidote: Evalutation •Database independent •Rich feature set •Process ◦Verifiable ◦Repeatable
◦Reversable Liquibase offers an ubiquitous language for developers and database administrators
Antidote: Advanced use-cases •Legacy Database •Keeping DBA's Happy •Integration •Extending
Liquibase
Antidote: Advanced use-cases •Legacy Database •Keeping DBA's Happy •Integration •Extending
Liquibase Liquibase can generate a changelog from an existing database
Antidote: Advanced use-cases •Legacy Database •Keeping DBA's Happy •Integration •Extending
Liquibase
Antidote: Advanced use-cases •Legacy Database •Keeping DBA's Happy •Integration •Extending
Liquibase Various integration options •Commandline •Ant •Maven •Spring •Servlet Listener
Antidote: Advanced use-cases •Legacy Database •Keeping DBA's Happy •Integration •Extending
Liquibase
Conclusion Liquibase •Solves Problems •Introducible •Maintainable •Extensible •Mature
Questions Daan van Berkel
[email protected]
@daan.v.berkel.1980 github.com/dvberkel Slides available at
http://goo.gl/AuT4s Code available at github dvberkel/jfall2011-liquibase