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
flyway-play
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Toshiyuki Takahashi
August 01, 2015
Programming
2
2.2k
flyway-play
Toshiyuki Takahashi
August 01, 2015
Tweet
Share
More Decks by Toshiyuki Takahashi
See All by Toshiyuki Takahashi
Purely Functional Programming with Cats Effect 3 and Scala 3 [ScalaMatsuri2022]
tototoshi
0
7.2k
scala-ojisan
tototoshi
0
150
5年ぶりにPHPを書いた話
tototoshi
0
340
Steps to master the Play source code
tototoshi
1
530
Template Engines in Scala
tototoshi
1
3.9k
Play と Scala のこれまでとこれから
tototoshi
1
2.1k
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
310
RAGでハマりがちな"Excelの罠"を、データの構造化で突破する
harumiweb
8
2.1k
Go 1.26でのsliceのメモリアロケーション最適化 / Go 1.26 リリースパーティ #go126party
mazrean
1
310
朝日新聞のデジタル版を支えるGoバックエンド ー価値ある情報をいち早く確実にお届けするために
junkiishida
1
290
AI活用のコスパを最大化する方法
ochtum
0
120
AIとペアプロして処理時間を97%削減した話 #pyconshizu
kashewnuts
1
170
オブザーバビリティ駆動開発って実際どうなの?
yohfee
2
630
コーディングルールの鮮度を保ちたい / keep-fresh-go-internal-conventions
handlename
0
110
new(1.26) ← これすき / kamakura.go #8
utgwkk
0
1.1k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
350
CDIの誤解しがちな仕様とその対処TIPS
futokiyo
0
140
DevinとClaude Code、SREの現場で使い倒してみた件
karia
1
780
Featured
See All Featured
How GitHub (no longer) Works
holman
316
140k
Visualization
eitanlees
150
17k
We Have a Design System, Now What?
morganepeng
55
8k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
89
The Curious Case for Waylosing
cassininazir
0
260
Bash Introduction
62gerente
615
210k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
660
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
82
Thoughts on Productivity
jonyablonski
75
5.1k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
290
Producing Creativity
orderedlist
PRO
348
40k
Utilizing Notion as your number one productivity tool
mfonobong
3
240
Transcript
qZXBZQMBZ &BTZ%BUBCBTF.JHSBUJPOGPS1MBZ TDBMBؔ4VNNJU
%BUBCBTFNJHSBUJPOJTEJGpDVMU
%# w .VUBCMF w MJLFBHMPCBMWBSJBCMFTUBUF
%&7TBZT w l4FUVQEBUBCBTFNBOVBMMZ z w l)PXUPSFWJFXDIBOHFT z w l8IPDIBOHFEUIJTTDIFNB z
w l*GUFTUECEJGGFSTGSPNQSPE QSPEJT UIFSFBMz
%#"TBZT w l*EPO`ULOPXNVDIBCPVUBQQz w l)FZ%&7 HJWFNF"-5&3TDSJQUz
%BUBCBTFNJHSBUJPOJTEJGpDVMU
(PBM w $PPQFSBUJPOCFUXFFO%&7BOE%#" w .BOBHFEBUBCBTFDIBOHFT
'MZXBZNBEFJUFBTZ
8IBUJT'MZXBZ
'MZXBZ w 0QFOTPVSDFEBUBCBTFNJHSBUJPOUPPM w 8SJUUFOJO+BWB w ;FSPSFRVJSFEEFQFOEFODJFTPUIFSUIBO +BWB BOE+%#$ w
4VQQPSU42-CBTFE+BWBCBTFE NJHSBUJPO w 1PSUBCMF
4VQQPSUFEEBUBCBTFT w 0SBDMF w .Z42- w 1PTUHSF42- w %# w
) w TPMJE%# w 42-4FSWFS w .BSJB%# w 7FSUJDB w %#[04 w )TRM w 42-"[VSF w (PPHMF$MPVE42- w "843FETIJGU w %FSCZ w 42-JUF
1PSUBCMF w .BWFO w TCU w (SBEMF w "OU w
$PNNBOE-JOF w +BWB"1*
$PNNBOET w NJHSBUF w DMFBO w SFQBJS w JOGP w
WBMJEBUF w CBTFMJOF
42-CBTFE.JHSBUJPO create table language ( id integer primary key, name
varchar(100) not null );
+BWBCBTFE.JHSBUJPO package db.migration.java import java.sql.Connection import org.flywaydb.core.api.migration.jdbc.JdbcMigration
class V1__Create_language_table extends JdbcMigration { override def migrate(conn: Connection): Unit = { conn.createStatement().executeUpdate( """create table language ( | id integer primary key, | name varchar(100) not null |);""".stripMargin) } }
IUUQXXXUIPVHIUXPSLTDPNSBEBSUPPMTqZXBZ ⚫"EPQU
8&# %#13&447PM +BWBͷ຺߭ʲୈճʳ 'MZXBZʹΑΔޮతͳ%#εΩʔϚཧ
8IBUJTqZXBZQMBZ
qZXBZQMBZ w 'MZXBZNPEVMFGPS1MBZ w QMBZqZXBZJTBWBJMBCMFGPS
libraryDependencies ++= Seq( "org.flywaydb" %% "flyway-play" % "2.1.0" ) play.modules.enabled
+= "org.flywaydb.play.PlayModule" CVJMETCU BQQMJDBUJPODPOG
8IZOPUQMBZFWPMVUJPOT
QMBZFWPMVUJPOT w EFQFOETPO1MBZ w JT XBT OPUDBQBCMFPGJOUFHSBUJOH XJUITPNFEBUBCBTFMJCSBSJFTUIBUEPO`U EFQFOEPOQMBZBQJEC w
JTOPUTPqFYJCMF
%JGGFSFODFGSPNQMBZFWPMVUJPOT
w 6QT%PXOT w .BSLFSDPNNFOU QMBZFWPMVUJPOT
qZXBZQMBZ w /Pb%PXOT`QBSU w 1MBJO42-
QMBZFWPMVUJPOT w TRM TRM TRM ʜ
qZXBZQMBZ w 0OFPSNPSFOVNFSJDQBSUT w 4FQBSBUFECZBEPU PSBO VOEFSTDPSF @
w 6OEFSTDPSFTBSFSFQMBDFECZEPUT BUSVOUJNF w -FBEJOH[FSPFTBSFJHOPSFEJOFBDI QBSU "WFSTJPONVTUIBWF UIFGPMMPXJOHTUSVDUVSF
qZXBZQMBZ w w w w @ BUSVOUJNF
w w w w w &YBNQMFTPGWBMJEWFSTJPO
QMBZFWPMVUJPOT TRM TRM DPOqJDUNFSHF TRM
QMBZFWPMVUJPOT
QMBZFWPMVUJPOT 7@@ʜʜTRM 7@@ʜʜTRM 7@@ʜʜTRM OPDPOqJDUT
5JQTVTFDBTFT
&NCFEJOZPVSBQQ w 'MZXBZIBT+BWB"1* w &BTZUPFNCFEJOBQQ UFTU val flyway = new
Flyway flyway.setDataSource(dataSource) flyway.migrate()
&YJTUJOHEBUBCBTFTFUVQ qZXBZCBTFMJOF%qZXBZCBTFMJOF7FSTJPO %qZXBZCBTFMJOF%FTDSJQUJPO#BTFWFSTJPO IUUQqZXBZECPSHEPDVNFOUBUJPOFYJTUJOHIUNM
'SPN$-* w 4CU .BWFO (SBEMFJOEFWFOWJSPONFOU w $-*UPPMJOQSPE
XJUITMJDLDPEFHFO w QJUGBMM qZXBZQMBZEPFTO`UXPSLXJUI TMJDLDPEFHFO w qZXBZQMBZFGGFDUTPOTUBSUJOHUIF QMBZBQQ w TMJDLDPEFHFOFGGFDUTJODPNQJMFUJNF
w 6TFTCUQMVHJOJOTUFBE
XJUITMJDLDPEFHFO w IUUQTHJUIVCDPNUPUPUPTIJTCUTMJDLDPEFHFOFYBNQMF
4VNNBSZ
w 'MZXBZNBLFTECNJHSBUJPOFBTZ w TJNQMF QPSUBCMFBOEQPXFSGVM w 5SZJGZPVBSFJOUSPVCMFXJUIQMBZ FWPMVUJPOT