рдЧреНрд░реИрдбрд▓ рдореЗрдВ DBDeploy рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ


рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЧреНрд░реИрдбрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ DBDeploy рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред


рдпрд╣ рд╕рдм рдХреНрдпрд╛ рд╣реИ?


рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рд╕рдВрд╕реНрдХрд░рдг рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдкреНрд░рд╡рд╛рд╕рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реЛрдЧрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдм рдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ DBDeploy рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕рдмрд╕реЗ рдкреНрд░рд╕рд┐рджреНрдз рдЙрдкрдХрд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рдЙрджрд╛рд╣рд░рдг рдФрд░ рдХрд┐рд╕реА рднреА рд╡рд┐рдХрд╛рд╕ рдорд╢реАрди рдкрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рднреА рдирд╡реАрдирддрдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдФрд░ рдЧреНрд░реИрдбрд▓ рдЕрдм рдПрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреИрд╢рдиреЗрдмрд▓ рдЙрдкрдХрд░рдг рд╣реИ (рдЬреИрд╕реЗ рдЪреАрдВрдЯреА рдФрд░ рдорд╛рд╡реЗрди, рдХреЗрд╡рд▓ рдмреЗрд╣рддрд░)ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рд▓рд┐рдЦрд╛ ред



рдФрд░ рд╕рд╡рд╛рд▓ рдХреНрдпрд╛ рд╣реИ?


рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рдЧреНрд░реИрдбрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ DBDeploy рдХреИрд╕реЗ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рдП? DBDeploy рдХреЗ рдкрд╛рд╕ Ant рдФрд░ Maven рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд▓рдЧрдЗрди рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп рд╣реИрдВ, рд▓реЗрдХрд┐рди DBdeploy рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдкреНрд▓рдЧрдЗрди рдЕрднреА рддрдХ рдирд╣реАрдВ рд╣реИ (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдпрд╣ рдЕрдкрдиреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рд╣реИ)ред рдереЛрдбрд╝рд╛ рдкреНрд░рд╣рд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдЗрд╕ рдирддреАрдЬреЗ рдкрд░ рдкрд╣реБрдВрдЪрд╛ рдХрд┐ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдЧреНрд░реИрдбрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдЙрд╕реА рдПрдВрдЯ рдЯрд╛рд╕реНрдХ рдбреАрдмреАрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ ( рдпрд╣ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЧреНрд░реЗрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХрд┐рд╕реА рднреА рдПрдВрдЯ рдЯрд╛рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП)ред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред




рдХрд╛рд░реНрдп рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд╣рдо рдХрд╣рд╛рдВ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ?


рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд░рдЪрдирд╛ рд╣реИред Db рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ SQL рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрддреА рд╣реИ:





рдлрд┐рд░ рд╣рдо 3 рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЧреНрд░реЗрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

build.gradle


project.ext { dbDriver = 'com.mysql.jdbc.Driver' dbUrl = 'jdbc:mysql:///habrahabr' dbUsername = 'habra' dbPassword = 'habr' } 


рдХрд╛рд░реНрдп рдЕрджреНрдпрддрдирдЯреИрдмрдмреЗрд╕

 task updateDatabase << { ant.taskdef(name: 'dbdeploy', classname: 'com.dbdeploy.AntTarget', classpath: configurations.compile.asPath) ant.dbdeploy(driver: dbDriver, url: dbUrl, userid: dbUsername, password: dbPassword, dir: 'db', dbms: 'mysql', undooutputfile: 'db/undo_last_change.sql') } 


рдХрд╛рд░реНрдп createChangelogTable

 <b>task createChangelogTable</b> << { ant.sql(driver: dbDriver, url: dbUrl, userid: dbUsername, password: dbPassword, encoding: 'UTF-8', classpath: configurations.compile.asPath) { fileset(file: 'db/create_changelog_table.sql') } } 


рдХрд╛рд░реНрдп рдкреВрд░реНрд╡рд╡рдд рдХрд░реЗрдВ

 <b>task undoLastChange</b> << { ant.sql(driver: dbDriver, url: dbUrl, userid: dbUsername, password: dbPassword, encoding: 'UTF-8', classpath: configurations.compile.asPath) { fileset(file: 'db/undo_last_change.sql') } } 


рдЗрд╕реЗ рдХреИрд╕реЗ рдЪрд▓рд╛рдПрдВ?


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 3 рдХрд╛рд░реНрдп рд╣реИрдВ:


> рдЧреНрд░реЗрдбреЗрд▓ рдХреНрд░реИрдВрдЧреЗрд▓рдЧреЙрдЧрдЯреЗрдмрд▓
 : createChangelogTable
 рдирд┐рд░реНрдорд╛рдг рд╕рдлрд▓рддрд╛ рд╣реИ

> рдЕрджреНрдпрддрди рдЕрджреНрдпрддрди
 [ant: dbdeploy] dbdeploy 3.0M3
 [ant: dbdeploy] рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ / tmp / habr / gradle-dbdeploy / db рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкрдврд╝рдирд╛
 [ant: dbdeploy] рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдкрд░ рд▓рд╛рдЧреВ рдкрд░рд┐рд╡рд░реНрддрди:
 [ant: dbdeploy] 1..61
 [рдЪреАрдВрдЯреА: dbdeploy] рд▓рд┐рдкрд┐рдпреЛрдВ рдЙрдкрд▓рдмреНрдз:
 [ant: dbdeploy] 62..62
 [рдЪреАрдВрдЯреА: dbdeploy] рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП:
 [ant: dbdeploy] 62..62
 [ant: dbdeploy] # 62: 062_migrate_currency_to_eur.sqb.com рд▓рд╛рдЧреВ рдХрд░рдирд╛ ...
 [ant: dbdeploy] -> 5 рдореЗрдВ рд╕реЗ 1 рдХрдерди ...
 [ant: dbdeploy] -> рдХрдерди реи рдХрд╛ рел ...
 [ant: dbdeploy] -> рел рдореЗрдВ рд╕реЗ рей рдХрдерди ...
 [ant: dbdeploy] -> рдХрдерди рел рдХрд╛ рек ...
 [ant: dbdeploy] -> рдХрдерди рел рдХрд╛ рел ...
 [рдЪреАрдВрдЯреА: dbdeploy] рдкреВрд░реНрд╡рд╡рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдирд╛ ...

 рдирд┐рд░реНрдорд╛рдг рд╕рдлрд▓рддрд╛ рд╣реИ

> рдЕрдирдбреЙрд▓реЗрд╕реНрдЯрдЪреЗрдВрдЬ рдмрджрд▓реЗрдВ
 : рдкреВрд░реНрд╡рд╡рдд рдХрд░реЗрдВ
 рдирд┐рд░реНрдорд╛рдг рд╕рдлрд▓рддрд╛ рд╣реИ

рдЕрдм рдЖрдк рдПрдХ рдмрд╛рд░ тАЬgradle createChangelogTableтАЭ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж рднреА рд╣рд░ рдмрд╛рд░ тАЬgradle updateDatabaseтАЭ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЕрдВрддрд┐рдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдкреВрд░реНрд╡рд╡рддреН рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП тАЬgradle undoLastChangeтАЭ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдХрд╣рдирд╛


рдЧреНрд░реИрдб, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдФрд░ рдкрдардиреАрдп рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, DBDeploy рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдФрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХ рд╕рд╛рде рдХрд╛рдо рдХрд┐рдпрд╛ред



рд╕реМрднрд╛рдЧреНрдп!


Source: https://habr.com/ru/post/In152765/


All Articles