á€áá±á¬ááºážáá«ážá áááºááœááºáá»ááºááŸá¬ á
á¬ááŒáá·áºááá¯ááºáá
áºáá¯á ááá°áá¬ááᯠá¡áá¯á¶ážááŒá¯áááºááŒá
áºáááºá
á€áá±á¬ááºážáá«ážááŸá¡áá»ááºá¡áááºáá»á¬ážááẠááááŠážá áœá¬ PostgreSQL á áœááºážáááºáá»á¬ážááᯠá¡áá»á¬ážáá¯á¶ážá¡áá¯á¶ážááŒá¯ááá¯áá±á¬ developer áá»á¬ážá¡ááœáẠá¡áá¯á¶ážáááºáááá·áºáááºá ááá¯á·áá±á¬áº database ááœááºááá·áºááœááºážáá¬ážáá±á¬ business logic ááá¯ááááºážááááºážáá¬ážááẠááŒá¿áá¬áá»á¬ážááŸáá·áºáááºááá¯ááºáá±ááŒááááºá
á€áá±á¬ááºážáá«ážááẠáá±áá¬áá±á·á áºááœáẠá á®ážááœá¬ážáá±ážáá¯áá¹ááááᯠááááºážáááºážááŒááºážá á¡á¬ážáá¬áá»ááºáá»á¬áž ááá¯á·ááá¯áẠá¡á¬ážáááºážáá»ááºáá»á¬ážááᯠáá±á¬áºááŒáááºááá¯ááºáá«á á á¬áááºáá°á០ááœá±ážáá»ááºááŸá¯ ááŒá¯áá¯ááºáá¬ážááŒá®ážááŒá áºáááºáᯠáá°ááá«áááºá
á¡á±á¬ááºáá«áá±ážááœááºážáá»á¬ážááᯠááá·áºááœááºážá ááºážá á¬ážáá«áááºá
- áá±áá¬áá±á·á áºááœá²á·á ááºážáá¯á¶ááᯠá áœáá·áºáá áºááŒááºážá¡á¬áž áá¬ážááŸááºážááááºážáá»á¯ááºááŸá¯á áá áºááœáẠáááºááá¯á·áá¯á¶á á¶ááŒáá·áº ááááºážáááºážááá·áºááááºáž (áá±á¬ááºááœáẠVCS áᯠáá±á«áºááá¯áááº)
- á¡ááŸáá¯ááºáá¯á¶ážááᯠááááºážáááºážááŒá®ážáá±á¬áẠáá±áá¬áá±á·á áºááœá²á·á ááºážáá¯á¶ááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááŒá±áá¬áá¶áá¯á¶
- áááááá¹ááá»á¬ážááŸáá·áº ááŒá®ážáá¬ážáá±á¬ ááœáŸá±á·ááŒá±á¬ááºážááŒááºážááá¯ááºáá»á¬ážááᯠáááá¯á¡ááºáá² áá±áá¬áá±á·á áºááœá²á·á ááºážáá¯á¶ááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáááºááá¯á·ááœáŸá²ááŒá±á¬ááºážáááºáááºážá
- ááá±á¬áá»ááºáá áºáá¯ááœáẠá¡ááŒáá¯ááºáá¯ááºáá±á¬ááºááŒááºážáá¯ááºáááºážá ááºááᯠdeveloper á¡áá»á¬ážá¡ááŒá¬ážá á á¯á ááºážáá¯á¶
- áá±áá¬áá±á·á
áºááœá²á·á
ááºážáá¯á¶ááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáá¯ááºáá¯ááºááŸá¯áááºáááºážáá»ááºááá¯á· áá¯á¶ááŒá¯á¶á
áœá¬á¡áá¯á¶ážáá»áááºáž
SchemaKeeper áá¬áá¬á áá¬ážááŒáá·áº áá±ážáá¬ážáá¬ážáá±á¬ ááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºážáá»á¬ážááŸáá·áº áá¯ááºáá±á¬ááºáááºá¡ááœáẠáá®ááá¯ááºážáá¯ááºáá¬ážáááºá
PL/pgSQL . á¡ááŒá¬ážáá¬áá¬á áá¬ážáá»á¬ážááŒáá·áº á ááºážáááºááŒááºáž áááŒá¯áá¯ááºááá±ážáá±á¬ááŒá±á¬áá·áº á¡áá¯á¶ážááŒá¯ááŸá¯ááŸá¬ áááá±á¬ááºááŸá¯ áááŸáááá¯áẠááá¯á·ááá¯áẠáááŒá áºááá¯ááºáá«á
VCS ááœáẠáá±áá¬áá±á·á áºáááºáá±á¬ááºáá¯á¶ á¡ááŸáá¯ááºááááºážáááºážáááºáž
á
á¬ááŒáá·áºááá¯áẠsaveDump
áá±áá¬áá±á·á
áºá០á¡áá¬ááá¹áá¯á¡á¬ážáá¯á¶ážááᯠáá®ážááŒá¬ážá
á¬áá¬ážááá¯ááºáá»á¬ážá¡ááŒá
Ạááááºážáááºážáá±ážáááºá á¡ááœááºááẠáá±áá¬áá±á·á
áºááœá²á·á
ááºážáá¯á¶áá«ááŸááá±á¬ áááºážááœáŸááºáá
áºáá¯ááŒá
áºááŒá®áž VCS ááá¯á· á¡ááœááºááá° ááá·áºááá¯ááºáá±á¬ á¡á¯ááºá
á¯ááœá²á·ááá¯ááºáá»á¬ážá¡ááŒá
Ạááá¯ááºážááŒá¬ážáá¬ážáááºá
á¥ááá¬áá»á¬ážá áœá¬ááᯠá¡áá¯á¶ážááŒá¯á áá±áá¬áá±á·á áºá០á¡áá¬ááá¹áá¯áá»á¬ážááᯠááá¯ááºáá»á¬ážá¡ááŒá áºááá¯á· ááŒá±á¬ááºážááŒáá·áºááŒáá«á áá¯á·á
á¡áá¬ááá¹áá¯á¡áá»áá¯ážá¡á
á¬áž
á¡á
á®á¡á
ááº
áá¬ááá»á±á¬ááá¯
ááœá±ážáá»áá¯ážáááºážááŒá±á¬ááºážááᯠáááºááá¯
á
á¬ážááŸá²
á¡áá»á¬ážááŒááºáá°
á¡áá±á¬ááºá·
./public/tables/accounts.txt
ááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºáž
á¡áá»á¬ážááŒááºáá°
auth(hash bigint)
./public/functions/auth(int8).sql
á
áááºáá°áž
ááœááºáááº
á¡ááœááº
./booking/views/tariffs.txt
ááá¯ááºáá»á¬ážá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááẠáááá»áá±á¬ áá±áá¬áá±á·á
áºá¡áá¬ááá¹áá¯áá
áºáá¯á ááœá²á·á
ááºážáá¯á¶ááᯠá
á¬áá¬ážááá¯ááºá
á¬ážááŒá¯ááŸá¯ááŒá
áºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá ááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºážáá»á¬ážá¡ááœááºá ááá¯ááºá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááẠááááºááá¯á·ááŒááºážááŸá
áááºá ááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºážá á¡áááá¹áá«ááºá¡ááŒáá·áºá¡á
á¯á¶ááŒá
áºáááá·áºáááºá CREATE OR REPLACE FUNCTION
.
á¡áá±á«áºáááá¬ážááŸááœá±á·ááá¯ááºáááºá¡ááá¯ááºážá ááá¯ááºááá¯á·ááœá¬ážááá·áºáááºážááŒá±á¬ááºážááẠá¡áá¬ááá¹áá¯á¡áá»áá¯ážá¡á á¬ážá schema ááŸáá·áº á¡áááºááá¯á·ááᯠááááºážáááºážáá¬ážáááºá á€áááºážáááºážááẠáá±áá¬áá±á·á áºááŸá ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠá¡ááŸáá¯ááºáá¯á¶ááŸáá·áº áá¯ááºááŒááºáááºáá¯á¶ážáááºááŒááºážááŸáááá·áº ááœá¬ážáá¬ááẠááá¯ááá¯ááœááºáá°á á±áááºá
extension ááá¯
.sql
ááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºáž á¡áááºážá¡ááŒá áºáá¯ááºáá«ááá·áº ááá¯ááºáá»á¬ážá¡ááœááºá ááá¯ááºááá¯ááœáá·áºáá±á¬á¡áá«ááœáẠáá±áá¬áá±á·á áºááŸáá·áº á¡ááŒááºá¡ááŸááºáá¯á¶á·ááŒááºáááºá¡ááœáẠIDE ááẠá¡ááá¯á¡áá»á±á¬áẠáá¶á·ááá¯ážáá±ážááá¯ááºááẠáááºážááᯠááœá±ážáá»ááºáá¬ážáááºá
á¡ááŸáá¯ááºáá¯á¶ážááᯠááááºážáááºážááŒá®ážáá±á¬áẠáá±áá¬áá±á·á áºááœá²á·á ááºážáá¯á¶ááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááŒá±áá¬áá¶áá¯á¶
VCS ááœáẠáááºááŸááá±áá¬áá±á·á
áºáááºáá±á¬ááºáá¯á¶á á¡ááŸáá¯ááºáá¯á¶áá
áºáá¯á¶á¡á¬áž ááááºážáááºážááŒááºážááŒáá·áºá á¡ááŸáá¯ááºáá¯á¶ážááᯠáááºáá®ážááŒá®ážáá±á¬áẠáá±áá¬áá±á·á
áºááœá²á·á
ááºážáá¯á¶ááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬áž ááŒá¯áá¯ááºáá¬ážááŒááºážááŸááááŸá á
á
áºáá±ážááẠá¡ááœáá·áºá¡áá±ážáááŸááááºá á
á¬ááŒáá·áºááá¯ááºááŸá¬ verifyDump
áá±ážááœááºááá¯ážáá»áá¯ážáááŸááá² ááœá²ááŒá¬ážááŸá¯áá»á¬ážá¡ááŒá±á¬ááºáž á¡áá»ááºá¡áááºáá»á¬ážááᯠááŒááºáá±ážáááºá
á
á
áºáá±ážááẠá¡ááŒá¬ážáááºážáááºážááŸá¬ áá¯ááºáá±á¬ááºáá»ááºááᯠáááºáá¶áá±á«áºááá¯ááŒááºážááŒá
áºáááºá saveDump
áá°áá®áá±á¬áááºážááŒá±á¬ááºážááá¯áááºááŸááºááŒááºážá á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážá¡ááœáẠVCS ááœááºá
á
áºáá±ážáá«á áá±áá¬áá±á·á
áºá០á¡áá¬ááá¹áá¯á¡á¬ážáá¯á¶ážááᯠáá®ážááŒá¬ážááá¯ááºáá»á¬ážááœáẠááááºážáááºážáá¬ážáá±á¬ááŒá±á¬áá·áº VCS ááẠááŒá±á¬ááºážáá²áá¬ážáá±á¬ á¡áá¬ááá¹áá¯áá»á¬ážááá¯áᬠááŒááááºááŒá
áºáááºá
á€áááºážáááºážá á¡áááá¡á¬ážáááºážáá»ááºááŸá¬ á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááŒááºááœá±á·ááá¯ááºááẠááá¯ááºáá»á¬ážááᯠoverwrite áá¯ááºááẠááá¯á¡ááºáá«áááºá
áááááá¹ááá»á¬ážááŸáá·áº ááŒá®ážáá¬ážáá±á¬ ááœáŸá±á·ááŒá±á¬ááºážááŒááºážááá¯ááºáá»á¬ážááᯠáááá¯á¡ááºáá² áá±áá¬áá±á·á áºááœá²á·á ááºážáá¯á¶ááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáááºááá¯á·ááœáŸá²ááŒá±á¬ááºážáááºáááºážá
áá¯ááºáá±á¬ááºáá»ááºááᯠáá»á±ážáá°ážáááºáá«áááºá deployDump
ááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºážáá»á¬ážá á¡áááºážá¡ááŒá
áºáá¯ááºááᯠáá¯á¶ááŸáẠá¡ááá®áá±ážááŸááºáž á¡áááºážá¡ááŒá
áºáá¯ááºáá²á·ááá¯á· á¡ááá¡áá» áááºážááŒááºááá¯ááºáá«áááºá ááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºážáá¯ááºááœáẠááá¯ááºážá¡áá
áºáá»á¬ážááᯠáá±á«ááºážááá·áº/áá»ááºááá¯ááºááŒá®áž áá¬ážááŸááºážááááºážáá»á¯ááºááŸá¯ááá¯á· á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáá»ááºáá»ááºážááœááºážááá¯á·ááá¯ááºáááºá ááá¯á·ááá¯áẠá¡ááŸáá¯ááºáá¯á¶ážáááºážááœáŸááºááœáẠáááºááá¯ááºáá¬ááá¯ááºáá»á¬ážááᯠáááºáá®áž/áá»ááºááŒááºážááŒáá·áº ááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºážáá»á¬ážááᯠáááºáá®áž/áá»ááºááá¯ááºáááºá
á¥ááá¬á¡á¬ážááŒáá·áºá schema áá
áºáá¯ááœáẠááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºážá¡áá
áºáá
áºáá¯ááᯠáááºáá®ážááẠpublic
extension ááŒáá·áº ááá¯ááºá¡áá
áºáá
áºáá¯áááºáá®ážáá«á .sql
áááºážááœáŸááºáá²ááŸá¬ public/functions
á block á¡áá«á¡ááẠááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºážá á¡áááºážá¡ááŒá
áºáá¯ááºááᯠááá·áºááœááºážáá«á CREATE OR REPLACE FUNCTION
ááá¯á·áá±á¬áẠfunction ááá¯áá±á«áºáá«á deployDump
. ááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºážááᯠááŒááºáááºááŒááºážááŸáá·áº áá»ááºááŒááºážááá¯á·ááẠá¡áá¬ážáá°áááºážáááºážááŒáá·áº ááŒá
áºáá±á«áºáá«áááºá ááá¯á·ááŒá±á¬áá·áºá áá¯ááºááẠVCS ááŸáá·áº áá±áá¬áá±á·á
áºááŸá
áºáá¯áá¯á¶ážááá¯á· áá
áºáá»áááºáááºáž áá±á¬ááºááœá¬ážáá«áááºá
ááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºážá á¡áááºážá¡ááŒá
áºáá¯ááºááœáẠá¡ááŸá¬ážá¡ááœááºážáá
áºáᯠáá±á«áºáá¬áá«áá ááá¯á·ááá¯áẠááá¯ááºá¡áááºáá»á¬ážááŸáá·áº ááááºážáááºážáá¬ážááá·áº áá¯ááºáá¯á¶ážáá¯ááºáááºážááŒá¬áž ááœá²ááœá²ááŸá¯áá
áºáᯠáá±á«áºáá¬áá«áá deployDump
á¡ááŸá¬ážá¡ááœááºážá
á¬áá¬ážááá¯ááŒáááŒááºážáá»ááºááœááºáááá·áºáááºá á¡ááŸáá¯ááºáá¯á¶ááŒá®ážááŸáá·áº áááºááŸááá±áá¬áá±á·á
áºááŒá¬ážááœáẠááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºážáá»á¬áž áááá¯ááºáá®áá«á á¡áá¯á¶ážááŒá¯ááá·áºá¡áá« áááŒá
áºááá¯ááºáá«á deployDump
.
ááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºážá¡áá áºááᯠáááºáá®ážááá·áºá¡áá« ááŸááºáááºáá±á¬ááá¯ááºá¡áááºááᯠááá¯ááºááá¯ááºááá·áºááœááºážááẠáááá¯á¡ááºáá«á ááá¯ááºááœáẠextension ááŸááááºáá¯á¶áá±á¬ááºáááºá
.sql
. áá±á«áºááŒá®ážáá±á¬ááºdeployDump
error text ááœáẠááá¯ááºááᯠá¡áááºááŒá±á¬ááºážááẠá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº ááŸááºáááºáá±á¬ á¡áááºáá«ááŸááá«áááºá
deployDump
áá¯ááºáá±á¬ááºáá»ááºáá
áºáá¯á ááá·áºáááºáá»ááºáá»á¬áž ááá¯á·ááá¯áẠááŒááºáá±ážááá·áº á¡áá»áá¯ážá¡á
á¬ážááᯠá¡ááá¯áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááá«áá² ááŒá±á¬ááºážáá²ááá¯ááºá
á±áááºááŒá
áºááŒá®ážá ááŸá±ážááá¯ážáá»ááºážáááºáááºážááŒáá·áº áááºáá¯ááºáá±á¬ááºááááºááŒá
áºáá«áááºá
á¡áááºáá¯á¶áž execute áá¯ááºáá«á DROP FUNCTION
ááŒá®ážáá±á¬á· áᬠCREATE OR REPLACE FUNCTION
.
áá¶ááá±á¬ááºážá
áœá¬áá²á á¡áá»áá¯á·áá±á¬á¡ááŒá±á¡áá±áá»á¬ážááŸááááºá deployDump
á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬áẠá¡áá¯á¶ážáá»ááááá«á á¥ááá¬á¡á¬ážááŒáá·áºá á¡áááºážáá¯á¶áž trigger áá
áºáá¯ááŸá¡áá¯á¶ážááŒá¯áá±á¬ trigger function ááá¯áááºááŸá¬ážáá»áŸááºá ááá¯ááá¯á·áá±á¬á¡ááŒá±á¡áá±áá»á¬ážááᯠááœáŸá±á·ááŒá±á¬ááºážááŒááºážááá¯ááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á ááá¯ááºááá¯ááºááŒá±ááŸááºážáááºá
ááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºážáá»á¬ážááá¯á· á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááœáŸá±á·ááŒá±á¬ááºážááŒááºážá¡ááœáẠáááºááẠáá¬áááºááŸááá«áá
á
áááºááŒááºážáááŒá¯áá® ááœáŸá±á·ááŒá±á¬ááºážááŒááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá«áááºá deployDump
. áááºážááẠááá·áºá¡á¬áž ááœá²á·á
ááºážáá¯á¶ááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážá¡á¬ážáá¯á¶ážááᯠááŒá¯áá¯ááºááá¯ááºááŒá®áž ááŒá¿áá¬ááŸááá±á¬ á¡ááŒá±á¡áá±áá»á¬ážááᯠááŒá±ááŸááºážááá¯ááºá
á±ááŒááºážááŒáá·áº ááááºážáááºážáá¬ážáá±á¬ áá¯ááºáá¯á¶ážáá¯ááºáááºážáá»á¬ážááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáá±á¬ááºááá¯ááºážááœáẠááŒá¿áá¬áááŸááá² ááœáŸá²ááŒá±á¬ááºážááá¯ááºáááºááŒá
áºáááºá
ááœáŸá±á·ááŒá±á¬ááºážáá±ááá¯ááºááŸá¯áá»á¬ážááŒáá·áº áá¯ááºáá±á¬ááºááŒááºážá¡á¬áž á¡á±á¬ááºáá«ááá¹ááá»á¬ážááœáẠá¡áá±ážá áááºáá±á¬áºááŒáá«áááºá
ááá±á¬áá»ááºáá áºáá¯ááœáẠá¡ááŒáá¯ááºáá¯ááºáá±á¬ááºááŒááºážáá¯ááºáááºážá ááºááᯠdeveloper á¡áá»á¬ážá¡ááŒá¬ážá á á¯á ááºážáá¯á¶
VCS ááœááºááááºážáááºážáá¬ážáá±á¬ á¡ááŸáá¯ááºáá¯á¶ááá¹áá¬ááºááŸáá·áºá¡áá® áá±áááá¯ááºáá¬áá±áá¬áá±á·á áºááœá²á·á ááºážáá¯á¶ááᯠáá°áá±á¬ááºáá¬ááá·áº áá±áá¬áá±á·á áºá ááŒá®ážááŒáá·áºá á¯á¶áá±á¬ áááŠážá áááºááŒááºážá¡ááœáẠScript áá áºáá¯ááᯠáááºáá®ážááẠááá¯á¡ááºáá«áááºá á¡ááœááºáá¯á¶ážáááºážáááºážááŸá¬ local database á áááŠážá¡á ááŒá¯ááŒááºážááᯠá¡ááá·áº 3 ááá·áºááœá²áááºááŒá áºááẠá
- á¥ááá¬áá¯áá±á«áºááá·áº á¡ááŒá±áá¶ááœá²á·á
ááºážáá¯á¶áá«ááŸááá±á¬ ááá¯ááºááᯠáááºááœááºážáá«á
base.sql
- ááœáŸá±á·ááŒá±á¬ááºážáá±ááá¯ááºááŸá¯áá»á¬ážááᯠáá»áá·áºáá¯á¶ážááŒááºážá
- áá±á«áºááá¯á
deployDump
base.sql
ááœáŸá±á·ááŒá±á¬ááºážá¡ááŒá±áá»ááŸá¯áá»á¬ážááᯠá¡áá¯á¶ážáá»ááŒá®áž á¡áá±á¬ááºá¡áááºáá±á¬áºááá·áºá¡áá±á«áºá០á¡á ááŸááºááŒá áºáááºádeployDump
, áá«áááŒá áºáá«áááºbase.sql + ЌОгÑаÑОО + deployDump = акÑÑалÑÐœÐ°Ñ ÑÑÑÑкÑÑÑа ÐÐ
. utility ááᯠá¡áá¯á¶ážááŒá¯á ááá¯áá²á·ááá¯á·áá±á¬ááá¯ááºááᯠáááºáá®ážááá¯ááºáááºápg_dump
. á¡áá¯á¶ážááŒá¯áá¶á·base.sql
áá±áá¬áá±á·á áºááᯠá¡á ááŸá áááºáá¯ááºáá±á¬ááºááá·áºá¡áá« áá®ážááá·áºááŒá áºáááºá
ááŒá®ážááŒáá·áºá
á¯á¶áá±á¬áá±áá¬áá±á·á
áºá¡á
áá»áá¯ážááŒááºážá¡ááœáẠscript ááá¯áá±á«áºááŒáá«á
áá¯á· refresh.sh
. á¡áá¯ááºá¡ááœá¬ážá¡áá¬ááẠá€áá²á·ááá¯á·ááŒá
áºááá¯ááºáááº-
- developer ááẠáá°ááááºáááºážáá»ááºááœáẠá
áááºáááºá
refresh.sh
ááŸáá·áº áááºááŸááá±áá¬áá±á·á áºááœá²á·á ááºážáá¯á¶ááᯠáááŸááááºá - áá±á¬á·ááºáá²áá±ážáá¬ážáá°ááẠáá¯ááºáá±á¬ááºáá»ááºá¡áá
áºá ááá¯á¡ááºáá»ááºáá»á¬ážááᯠááŒáá·áºáááºážáá±ážáááºá¡ááœáẠáá±áááá¯ááºáá¬áá±áá¬áá±á·á
áºááᯠááœááºážáá¶ááŒááºáááºááŒááºáž (
ALTER TABLE ... ADD COLUMN
á áááºááá¯á·) - á¡áá¯ááºááŒá®ážáá±á¬á¡áá«á developer ááẠfunction ááá¯áá±á«áºáááºá
saveDump
VCS ááŸá áá±áá¬áá±á·á áºááœáẠááŒá¯áá¯ááºáá¬ážáá±á¬ á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáá¯ááºáá±á¬ááºááẠ- áá±á¬á·ááºáá²áá±ážáá¬ážáá° ááŒááºáááºá
áááºáá«á
refresh.sh
ááá¯á¡áá«verifyDump
ááŒá±á¬ááºážááœáŸá±á·ááŒááºážááœáẠááá·áºááœááºážááẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážá á¬áááºážááᯠááá¯ááŒááá¬ážáááºá - áá±á¬á·ááºáá²á¡ááºáá»ááºáá®áá¬ááẠááœá²á·á
ááºážáá¯á¶ááŒá±á¬ááºážáá²ááŸá¯á¡á¬ážáá¯á¶ážááᯠááœáŸá±á·ááŒá±á¬ááºážááŒááºážááá¯ááºááá¯á· ááœáŸá²ááŒá±á¬ááºážááŒá®áž áááºáá¶áá¯ááºáá±á¬ááºáááºá
refresh.sh
ОverifyDump
ááœáŸá±á·ááŒá±á¬ááºážááŒááºážá¡á¬áž ááŸááºáááºá áœá¬ ááŒá¯á á¯áá¬ážáá»áŸááºáverifyDump
áá±áááá¯ááºáá¬áá±áá¬áá±á·á áºááŸáá·áº ááááºážáááºážáá¬ážáá±á¬á¡ááŸáá¯ááºáá¯á¶ážááŒá¬ážááœáẠááœá¬ááŒá¬ážáá»ááºáááŸááá±á
á¡áááºááœááºáá±á¬áºááŒáá¬ážáá±á¬áá¯ááºáááºážá ááºááẠgitflow á ááºážáá»ááºážáá»á¬ážááŸáá·áºáááá¬áááŒá áºáááºá VCS ááŸá áá¬áááœá²áá áºáá¯á á®ááœáẠá¡ááŸáá¯ááºáá¯á¶ážá ááá¯ááºááá¯ááºáá¬ážááŸááºážáá«ááŸáááŒá®áž á¡ááá¯ááºážá¡áááºáá»á¬ážááᯠáá±á«ááºážá ááºážááá·áºá¡áá« á¡ááŸáá¯ááºáá»á¬ážááᯠáá±á«ááºážá ááºážáááºááŒá áºáááºá á¡ááŒá±á¡áá±á¡áá»á¬ážá á¯ááœáẠáá±á«ááºážá ááºážááŒá®ážáá±á¬áẠáá±á¬ááºáááºáá¯ááºáá±á¬ááºá áᬠáááá¯á¡ááºáá±á¬áºáááºáž ááá°áá®áá±á¬á¡ááá¯ááºážá¡áááºáá»á¬ážááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬áž ááŒá¯áá¯ááºáá«áá á¥ááá¬á ááá¬ážáá áºáá¯áááºážááœáẠáááááá¹ááá áºáᯠááŒá áºáá±á«áºáá¬ááá¯ááºáááºá
á¥ááá¬áá áºáá¯áá¯á¶ážááŒá®áž áááááá¹áá¡ááŒá±á¡áá±áá áºáá¯ááᯠáá¯á¶ážáááºááŒáá·áºáá¡á±á¬ááº- áá¬áááœá²áá áºáá¯ááŸááááºá ááá¯ážáááºá¡ááá¯ááºážá¡áááºááŸá áºááá¯ááºážá ááá»á¬ О ááá»á¬ááŸáá·áº ááœá²ááœá²ááŸá¯áááŸááá±á¬á ááá¯ážáááºáá«áá±ááá·áº áá áºáá±á¬ááºáá²á·áá áºáá±á¬áẠááá±á¬áá¬ážááœá²ááœá²ááŸá¯ááœá± ááŸááááºá áá¬áááºááŸá¬ á¡ááá¯ááºážá¡áááºááŸá áºáá¯áá¯á¶ážááᯠáá±á«ááºážá ááºážáááºááŒá áºáááºá ááá¯ážáááº. á€ááá á¹á á¡ááœááºá á¡ááá¯ááºážá¡áááºáá»á¬ážáá²ááŸáá áºáá¯ááᯠáŠážá áœá¬áá±á«ááºážá ááºážááẠá¡ááŒá¶ááŒá¯áá¬ážáááºá ááá¯ážáááºááŒá®ážá០áá±á«ááºážá ááºážáá«á ááá¯ážááẠáá»ááºáá¬áááœá²ááá¯á·á áá»ááºáá¬áááœá²ááœáẠáááááá¹ááá»á¬ážááᯠááŒá±ááŸááºážááŒá®ážáá±á¬áẠáá±á¬ááºáá¯á¶ážáá¬áááœá²ááᯠáá±á«ááºážá ááºážáá«á ááá¯ážáááº. áááááá¹áááŒá±ááŸááºážáá±ážá¡ááá·áºá¡ááœááºážá áá±á«ááºážá ááºážááŒááºážáááááºáá»á¬ážáá«áááºááá·áº áá±á¬ááºáá¯á¶ážá¡ááŸáá¯ááºáá¯á¶ááŸáá·áºááá¯ááºáá®á á±ááẠáá±á¬ááºáá¯á¶ážá¡ááá¯ááºážá¡áááºááœáẠááœáŸá±á·ááŒá±á¬ááºážááŒááºážááá¯ááºááᯠááŒá¯ááŒááºááá±áááºá
áá±áá¬áá±á·á áºááœá²á·á ááºážáá¯á¶ááœáẠá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáá¯ááºáá¯ááºááŸá¯áááºáááºážáá»ááºááá¯á· áá¯á¶ááŒá¯á¶á áœá¬á¡áá¯á¶ážáá»áááºáž
VCS ááœáẠáááºááŸááá±áá¬áá±á·á áºááœá²á·á ááºážáá¯á¶á á¡ááŸáá¯ááºáá¯á¶áá áºáá¯á¶ááŸááá±ááŒááºážááŒá±á¬áá·áº ááá¯á¡ááºáá±á¬ááœá²á·á ááºážáá¯á¶ááŸáá·áº á¡ááá¡áá»ááá¯ááºáá»á±á¬áá®ááœá±ááŸáá á±ááẠáá¯ááºáá¯ááºááŸá¯áá±áá¬áá±á·á áºááᯠá á áºáá±ážááẠááŒá áºááá¯ááºáááºá áááºážááẠdeveloper áá»á¬ážá០áááºááœááºáá¬ážááá·áº ááŒá±á¬ááºážáá²ááŸá¯á¡á¬ážáá¯á¶ážááᯠáá¯ááºáá¯ááºááŸá¯á¡ááŒá±áá¶ááá¯á· á¡á±á¬ááºááŒááºá áœá¬ááœáŸá²ááŒá±á¬ááºážáá¬ážááŒá±á¬ááºáž áá±áá»á¬á á±áááºá
ááŸá
. ROLLBACK
:
- á¡áá±á¬ááºážá¡áááºá áááºáá«á
- á¡áá±á¬ááºážá¡áááºáá áºáá¯ááœáẠááœáŸá±á·ááŒá±á¬ááºážááŒááºážá¡á¬ážáá¯á¶ážááᯠáá¯ááºáá±á¬ááºáá«á
- áá°áá®áá±á¬ááœá±áá±ážááœá±áá°ááœááºá áá¯ááºáá±á¬ááºáá«á
deployDump
- ááœá±áá±ážááœá±áá°ááᯠááŒá®ážá¡á±á¬ááºááá¯ááºáá² áá¯ááºáá±á¬ááºáá«á
verifyDump
. á¡ááŸá¬ážá¡ááœááºážáááŸáááẠrun ááá¯ááºáá«áCOMMIT
. á¡ááŸá¬ážá¡ááœááºážáá»á¬ážááŸááá«á run áá«áROLLBACK
á€á¡ááá·áºáá»á¬ážááᯠá¡ááá®áá±ážááŸááºážá¡á¬áž ááŒáá·áºáá»ááºááŒááºážá¡ááœáẠáááºááŸááá»ááºážáááºááŸá¯áá»á¬ážááœáẠá¡ááœááºááá° áá±á«ááºážá ááºááá¯ááºáááºá
áá±á¬ááºáá»ááº
á¡áááºááœááºáá±á¬áºááŒáá¬ážáá±á¬áááºážáááºážáá»á¬ážááŒá±á¬áá·áºá áááºáá¡ááá®áá±ážááŸááºážáá¯ááºááŸá á
á®ážááœá¬ážáá±ážáá¯áá¹ááá¡á¬ážáá¯á¶ážááá¯á¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážááŸáá·áºááŸáá¯ááºážááŸááºáá«á ááœá¶á·ááŒáá¯ážááá¯ážáááºááŸá¯á¡áááºááŒá±ááŸá¯á¡áááºážáááºáá¬áá»á±á¬á·áááºážáá±á¬áºáááºáž âPHP + PostgreSQLâ ááá±á¬áá»ááºáá»á¬ážá០á¡ááŒáá·áºáá¯á¶ážá
áœááºážáá±á¬ááºáááºááᯠááŸá
áºáá¯ááºááá¯ááºáááºá ááá¯á·á¡ááŒáẠdata processing in
source: www.habr.com