рдлреНрд▓рд╛рдИрд╡реЗ: рдбреЗрдЯрд╛рдмреЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдореИрдиреЗрдЬрдореЗрдВрдЯ

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рд╕рдВрд╕реНрдХрд░рдгрдЧрдд рд╕реНрдХреАрдорд╛ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдкреНрд░рдмрдВрдзрди - рдлреНрд▓рд╛рдИрд╡реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рдзрдиреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ, рдПрдХ рдбреАрдмреАрдПрдордПрд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдХреЗ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдирд┐рдкрдЯрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдХрд╛рд╢, рдХрднреА-рдХрднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдмрд╣реБрдд рджреЗрд░ рд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХрд╛ рд╕рд╡рд╛рд▓ рдЙрдарддрд╛ рд╣реИ, рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЪрд╛рд▓реВ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЪрд░рдг рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреАрдорд╛ рдХрд╛ рдирд┐рдпрдВрддреНрд░рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЕрдиреНрдп рд╕рднреА рдкрд╣рд▓реБрдУрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдо рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ: рдПрдХ рд╕реНрдкрд╖реНрдЯ рдкреНрд░рд╡рд╛рд╕ рдкреНрд░рдмрдВрдзрди рдкреНрд░рдгрд╛рд▓реА рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕реНрдерд╛рдиреАрдп, рд╕реНрдЯреИрдВрдб рдФрд░ рдкрд░рд┐рдЪрд╛рд▓рди рдард┐рдХрд╛рдиреЛрдВ рдХреЛ рдЙрдирдХреЗ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд┐рдП рдмрд┐рдирд╛ рдЬрд▓реНрджреА рд╕реЗ "рдЫреЛрдбрд╝" рд╕рдХрддреЗ рд╣реИрдВред


рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рджрд╛рддрд╛ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рдореЙрдбрд▓ рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ рд░реВрдк рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдореЗрдВ рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдлрд┐рд░ рд╕реЗ рдирд┐рд░реНрдорд╛рдг (рд╕рдВрдкреВрд░реНрдг рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рд╕рд╛рде), рдЕрджреНрдпрддрди (рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде) рдпрд╛ рд╕реБрд▓рд╣ (рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рдмрд┐рдирд╛) рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдореЗрдВ, рдпрд╣ hbm2ddl рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ редfg.xml рдпрд╛ persistence.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдлрд┐рд░ рд╕реЗ рдирд┐рд░реНрдорд╛рдг (рдореЛрдб рдмрдирд╛рдПрдБ) рдЕрд╡рд╛рдВрдЫрдиреАрдп рд╣реИ рдпрджрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбреЗрдЯрд╛ рд╣реИ, рдФрд░ рдЕрдкрдбреЗрдЯ (рдЕрдкрдбреЗрдЯ рдореЛрдб) рдореЗрдВ рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЧреИрд░-рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рд╡рд╛рд▓реЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЙрд▓рдо рдФрд░ рдЯреЗрдмрд▓ рд╣рдЯрд╛рдП рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВ) рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдкреБрдирд░реНрдЧрдарди рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд▓реЗрддреЗ рд╣реИрдВред рдЕрдХреНрд╕рд░, рдпрджрд┐ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдореЗрдВ рдХрдИ рдмрджрд▓рд╛рд╡ рд╣реБрдП рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдкрд░рд┐рдЪрд╛рд▓рди рдЖрдзрд╛рд░ рдкрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдЕрдЬреНрдЮрд╛рдд рд╣реИред рдПрдХ рддрд░реАрдХрд╛ рдпрд╛ рджреВрд╕рд░рд╛, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЛ "рд╕реНрдЯреВрдк" рдХрд░рдирд╛ рд╣реЛрдЧрд╛ - рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдВрддреНрд░рдг рдХрд╛ рд╕рд╡рд╛рд▓ рдЖрддрд╛ рд╣реИред

flyway


рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХрд╛ рдореБрдЦреНрдп рдкреГрд╖реНрда рд╕рдорд╛рди рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рд╕реНрдкрд╖реНрдЯ рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рдореИрдВ рд╕рдореГрджреНрдз рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд╕рд░рд▓ рдПрд╕рдХреНрдпреВрдПрд▓ рдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ рдЬрд╛рд╡рд╛ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ (рдЙрддреНрддрд░рд╛рд░реНрджреНрдз рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рд╕реНрдкреНрд░рд┐рдВрдЧ рдЬреЗрдбреАрдмреАрд╕реА рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ) рдФрд░ рдореВрд▓ рдПрд╕рдХреНрдпреВрдПрд▓ рд╕рдорд░реНрдерди рд▓реЛрдХрдкреНрд░рд┐рдп DBMSs (Oracle PL / SQL, SQL Server T / SQL, MySQL рдФрд░ PostgreSQL рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд╛рд░реНрдпрд╡рд┐рдзрд┐рдпрд╛рдБ)ред

рдлреНрд▓рд╛рдИрд╡реЗ рдЪреАрдВрдЯреА, рдорд╛рд╡реЗрди рдФрд░ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЯреВрд▓ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдПрдХреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрдкреНрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рдиреЗ рдФрд░ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдкреАрдЖрдИ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдХрдИ рдбреАрдмреАрдПрдордПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдПрдХ рдореМрдЬреВрджрд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдлреНрд▓рд╛рдИрд╡реЗ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдорд╛рд╡реЗрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдФрд░ рд╕реНрдкреНрд░рд┐рдВрдЧ рд╕рдВрджрд░реНрдн рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдлреНрд▓рд╛рдИрд╡реЗ рдХреЛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред MySQL рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдлреНрд▓рд╛рдИрд╡реЗ рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ src / main / resource рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ db / рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рдмрдирд╛рдПрдБ: рдорд╛рдЗрдЧреНрд░реЗрд╢рди рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдХреЛ рдЗрд╕рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЪрд▓реЛ рд╡рд╣рд╛рдБ рдПрдХ рдкреВрд░реНрд╡ рдирд┐рд░реНрдпрд╛рдд рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ - рд╕рднреА рддрд╛рд▓рд┐рдХрд╛рдУрдВ, рд╡рд┐рдЪрд╛рд░реЛрдВ, рдЕрдиреБрдХреНрд░рдорд┐рдд, рдЖрджрд┐ рдХреЗ рд╕рд╛рдеред рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо V1__Base_version.sqlред рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рд▓рд┐рдП рдирд╛рдордХрд░рдг рд╕рдореНрдореЗрд▓рдиреЛрдВ рдХреЛ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдЕрдм рдпрд╣ рдХрд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо V рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдЦреНрдпрд╛ (рд╡рд┐рднрд╛рдЬрдХ рдмрд┐рдВрджреБрдУрдВ рдХреА рдПрдХ рдордирдорд╛рдиреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рде), рдПрдХ рдбрдмрд▓ рдЕрдВрдбрд░рд╕реНрдХреЛрд░ рдФрд░ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХрд╛ рд╡рд░реНрдгрди рд╣реИред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд┐рд░реНрднрд░рддрд╛ (рдирд┐рд░реНрднрд░рддрд╛ рдЕрдиреБрднрд╛рдЧ) рдореЗрдВ рдлреНрд▓рд╛рдИрд╡реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдореВрд▓ рдЬреЛрдбрд╝реЗрдВ:

<dependency> <groupId>com.googlecode.flyway</groupId> <artifactId>flyway-core</artifactId> <version>1.5</version> </dependency> 

рдФрд░ рдЕрд╕реЗрдВрдмрд▓реА рдкреНрд▓рдЧрдЗрдиреНрд╕ (рдЕрдиреБрднрд╛рдЧ рдмрд┐рд▓реНрдб / рдкреНрд▓рдЧрдЗрдиреНрд╕) - рдлреНрд▓рд╛рдИрд╡реЗ рдкреНрд▓рдЧрдЗрди:

 <plugin> <groupId>com.googlecode.flyway</groupId> <artifactId>flyway-maven-plugin</artifactId> <version>1.5</version> <configuration> <driver>com.mysql.jdbc.Driver</driver> <url>jdbc:mysql://localhost:3306/flywaytest?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;connectionCollation=utf8_general_ci&amp;characterSetResults=UTF-8</url> <baseDir>db/migration</baseDir> </configuration> </plugin> 

рдкреНрд▓рдЧрдЗрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлреНрд▓рд╛рдИрд╡реЗ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдЦрд╛рддрд╛ рдмрдирд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдЖрдк рдкреНрд▓рдЧ рдЗрди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 <configuration> <user>flyway</user> <password>mySecretPassword</password> ... </configuration> 

рдпрд╛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╡рд┐рдХрд▓реНрдк рдореЗрдВ:

 -Dflyway.user=flyway -Dflyway.password=mySecretPwd 

рд▓реЗрдХрд┐рди рдорд╛рд╡реЗрди рдкрд░ рдЕрд╕реЗрдВрдмрд▓реА рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рддрд░реАрдХрд╛, рдорд╛рд╡реЗрди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдлрд╝рд╛рдЗрд▓ (рд╕реЗрдЯрд┐рдВрдЧреНрд╕.xml рдлрд╝рд╛рдЗрд▓) рдореЗрдВ рдорд╛рдирдХ рдкреИрд░рд╛рдореАрдЯрд░ рд░рдЦрдирд╛ рд╣реИ рдФрд░ рд╕рднреА рд╕рдорд╛рди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдирдХрд╛ рдЖрдЧреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ:

 <servers> <server> <id>flyway-db</id> <username>flyway</username> <password>mySecretPassword</password> </server> </servers> 

рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЦрд░реЛрдВрдЪ рд╕реЗ рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕рдХреА рд╕рдлрд╛рдИ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╕рдВрдкреВрд░реНрдг рд╕рд╛рдордЧреНрд░реА рд╣рдЯрд╛ рджреА рдЬрд╛рдПрдЧреА:

 mvn flyway:clean 

рдХрд╛рд░реНрдп рдХреЗ рд╕рдлрд▓ рд╕рдорд╛рдкрди рдкрд░, рдбреЗрдЯрд╛рдмреЗрд╕ рдЦрд╛рд▓реА рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдирд┐рдореНрди рд▓рд╛рдЗрдиреЗрдВ рдорд╛рд╡реЗрди рд▓реЙрдЧ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдВрдЧреА:

 [INFO] --- flyway-maven-plugin:1.5:clean (default-cli) @ flyway-test-project --- [INFO] Cleaned database schema 'flywaytest' (execution time 00:03.911s) 

рдпрджрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рдЕрдк-рдЯреВ-рдбреЗрдЯ рд╣реИ (рдкрд╣рд▓реЗ рд╕реЗ рд▓реЛрдб рдХреА рдЧрдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ), рддреЛ рдХрд╛рд░реНрдп рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреЛ рдЗрд╕рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд░рдЪрдирд╛ рдмрдирд╛рдПрдЧрд╛:

 mvn flyway:init -Dflyway.initialVersion=1 -Dflyway.initialDescription="Base version" 

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЖрдк рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдХреАрдорд╛_version рддрд╛рд▓рд┐рдХрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХрд▓ рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИ:



рд╣рдо рдлрд╝реНрд▓рд╛рдЗрд╡реЗ рдХреЛ рдПрдХ рд╕реНрдкреНрд░рд┐рдВрдЧ рдмреАрди рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд╕рд╛рде рдПрдХреАрдХреГрдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдХрд┐ UnitManagerFactory рд╕реЗ рдкрд╣рд▓реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ:

 <bean id="flyway" class="com.googlecode.flyway.core.Flyway" init-method="migrate"> <property name="dataSource" ref="..."/> ... </bean> <!--        Flyway,  ,          --> <bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="entityManagerFactory" depends-on="flyway"> ... </bean> 

рдПрдХ рд╕реНрд╡рдЪреНрдЫ рдЖрдзрд╛рд░ рдкрд░ рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ V1__Base_version.sql рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рд╕реНрдХреАрдорд╛_version рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреАред рд▓реЙрдЧ рдореЗрдВ, рдЖрдк рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

 2012-04-04 06:42:09,279 INFO [com.googlecode.flyway.core.metadatatable.MetaDataTable] -- <Metadata table created: schema_version (Schema: flywaytest)> 2012-04-04 06:42:09,318 INFO [com.googlecode.flyway.core.migration.DbMigrator] -- <Current schema version: null> 2012-04-04 06:42:09,320 INFO [com.googlecode.flyway.core.migration.DbMigrator] -- <Migrating to version 1> 2012-04-04 06:42:24,897 INFO [com.googlecode.flyway.core.migration.DbMigrator] -- <Successfully applied 1 migration (execution time 00:15.615s).> 

рдпрджрд┐ рдЖрд╡реЗрджрди рдЕрдВрддрд┐рдо рдкреНрд░рд╡рд╛рд╕ рдХреЗ рд╕рдорд╛рди рдЖрдзрд╛рд░ рдкрд░ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЗрд╕ рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдЖрд╡реЗрджрди рд▓реЙрдЧ рдореЗрдВ рдкрд░рд┐рд▓рдХреНрд╖рд┐рдд рд╣реЛрдЧрд╛:

 2012-04-04 06:36:14,081 INFO [com.googlecode.flyway.core.migration.DbMigrator] -- <Current schema version: 1> 2012-04-04 06:36:14,085 INFO [com.googlecode.flyway.core.migration.DbMigrator] -- <Schema is up to date. No migration necessary.> 

рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдлреНрд▓рд╛рдИрд╡реЗ рдХреЗ рд╕рд╣реА рдПрдХреАрдХрд░рдг рдХреЗ рд╕рд╛рде, рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд╕рд╛рде рдЙрдкрд░реЛрдХреНрдд рд╕реНрдХреАрдорд╛_рд╡рд░реНрдЬрди рддрд╛рд▓рд┐рдХрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдкреНрд░рд╡рд╛рд╕ рдмрдирд╛рдПрдБ


V2_Test_change.sql рдирд╛рдо рдФрд░ рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде db / рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ:
 create table test_table ( id bigint(20) not null, primary key(id) ); 

рдЖрд╡реЗрджрди рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рд▓реЙрдЧ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпрд╛рдБ рдкрд╛рддреЗ рд╣реИрдВ:

 2012-04-04 06:51:02,708 INFO [com.googlecode.flyway.core.migration.DbMigrator] -- <Current schema version: 1> 2012-04-04 06:51:02,710 INFO [com.googlecode.flyway.core.migration.DbMigrator] -- <Migrating to version 2> 2012-04-04 06:51:03,137 INFO [com.googlecode.flyway.core.migration.DbMigrator] -- <Successfully applied 1 migration (execution time 00:00.480s).> 

рдФрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ test_table рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╕реНрдХреАрдорд╛_version рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд▓рд╛рдЧреВ рдорд╛рдЗрдЧреНрд░реЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рджрд┐рдЦрд╛рдИ рджреА:



рд░реЛрд▓рдмреИрдХ рдорд╛рдЗрдЧреНрд░реЗрд╢рди


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

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


All Articles