Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Liquibase JFall 2011
Search
Daan van Berkel
November 08, 2011
Technology
53
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
37
Other Decks in Technology
See All in Technology
AI × アーキテクト 第1・2章|生成AIの課題とアーキテクトの素養
daidaidai
0
170
自作バイナリを動かす「入口」8選
puhitaku
2
1.3k
「事実」を「計測」して、「解釈」する 〜AWS Lambdaのメモリ最適解の見つけ方〜
maimyyym
0
170
その Valkey 使いこなしていますか?
onk
PRO
5
1.6k
OptunaHub: ブラックボックス最適化のためのプラットフォーム
pfn
PRO
0
140
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
930
How to Design Configuration for Rails Applications
willnet
1
820
Classmethod Company Deck
satoshi7
1
710
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.8k
Getting Started with Google Antigravity
glaforge
0
310
AI導入は済んだ。次は統制を作り替える番だ_AI×開発組織 Summit 2026
techtekt
PRO
0
300
USB PDを使ってスマホを労わりたい
raspython3
0
180
Featured
See All Featured
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
540
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
580
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
400
The Limits of Empathy - UXLibs8
cassininazir
2
720
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Scaling GitHub
holman
464
140k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
870
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Bash Introduction
62gerente
615
220k
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