рдпрд╛ рд▓реЗрдЦрд╛рдЪрд╛ рдЙрджреНрджреЗрд╢ рдЧреНрд░рдВрдерд╛рд▓рдпрд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг рд╡рд╛рдкрд░рдгреЗ рд╣рд╛ рдЖрд╣реЗ
рдпрд╛ рд▓реЗрдЦрд╛рддреАрд▓ рдорд╛рд╣рд┐рддреА, рд╕рд░реНрд╡рдкреНрд░рдердо, рдЬреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдирд╛ PostgreSQL рдХреНрд╖рдорддрд╛рдВрдЪрд╛ рдЕрдзрд┐рдХрд╛рдзрд┐рдХ рдлрд╛рдпрджрд╛ рдШреНрдпрд╛рдпрдЪрд╛ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдареЗрд╡рд▓реЗрд▓реЗ рд╡реНрдпрд╡рд╕рд╛рдп рддрд░реНрдХ рд░рд╛рдЦрдгреНрдпрд╛рдд рд╕рдорд╕реНрдпрд╛ рдпреЗрдд рдЖрд╣реЗрдд рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рдЙрдкрдпреБрдХреНрдд рдард░реЗрд▓.
рд╣рд╛ рд▓реЗрдЦ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рд╡реНрдпрд╡рд╕рд╛рдп рддрд░реНрдХ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреЗ рдлрд╛рдпрджреЗ рдХрд┐рдВрд╡рд╛ рддреЛрдЯреЗ рд╡рд░реНрдгрди рдХрд░рдгрд╛рд░ рдирд╛рд╣реА. рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░рд▓реЗ рдЬрд╛рддреЗ рдХреА рдирд┐рд╡рдб рд╡рд╛рдЪрдХрд╛рдиреЗ рдЖрдзреАрдЪ рдХреЗрд▓реА рдЖрд╣реЗ.
рдЦрд╛рд▓реАрд▓ рдкреНрд░рд╢реНрдирд╛рдВрдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рдИрд▓:
- рдЖрд╡реГрддреНрддреА рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реАрдордзреНрдпреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдбрдВрдк рдХреЛрдгрддреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рд╡рд╛ (рдпрд╛рдкреБрдвреЗ рд╡реНрд╣реАрд╕реАрдПрд╕ рдореНрд╣рдгреВрди рд╕рдВрджрд░реНрднрд┐рдд)
- рдбрдВрдк рд╕реЗрд╡реНрд╣ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдЯреНрд░рдХреНрдЪрд░рдордзреАрд▓ рдмрджрд▓рд╛рдВрдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдХрд╕рд╛ рдШреНрдпрд╛рд╡рд╛
- рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдиреЗрддреАрд▓ рдмрджрд▓ рдЗрддрд░ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рд╕рдВрдШрд░реНрд╖ рдЖрдгрд┐ рд╡рд┐рд╢рд╛рд▓ рд╕реНрдерд▓рд╛рдВрддрд░ рдлрд╛рдпрд▓реАрдВрд╢рд┐рд╡рд╛рдп рдХрд╕реЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рд╛рд╡реЗ
- ╨Ъ╨░╨║ ╨╜╨░╨╗╨░╨┤╨╕╤В╤М ╨┐╤А╨╛╤Ж╨╡╤Б╤Б ╨┐╨░╤А╨░╨╗╨╗╨╡╨╗╤М╨╜╨╛╨╣ ╤А╨░╨▒╨╛╤В╤Л ╨╜╨░╨┤ ╨┐╤А╨╛╨╡╨║╤В╨╛╨╝ ╨╜╨╡╤Б╨║╨╛╨╗╤М╨║╨╕╤Е ╤А╨░╨╖╤А╨░╨▒╨╛╤В╤З╨╕╨║╨╛╨▓
- рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдиреЗрддреАрд▓ рдЕрдзрд┐рдХ рдмрджрд▓ рд╕реБрд░рдХреНрд╖рд┐рддрдкрдгреЗ рдХрд╕реЗ рддреИрдирд╛рдд рдХрд░рд╛рд╡реЗ
рд╕реНрдХреАрдордХреАрдкрд░ рднрд╛рд╖реЗрдд рд▓рд┐рд╣рд┐рд▓реЗрд▓реНрдпрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ
PL/pgSQL . рдЗрддрд░ рднрд╛рд╖рд╛рдВрд╕рд╣ рдЪрд╛рдЪрдгреА рдХреЗрд▓реА рдЧреЗрд▓реА рдирд╛рд╣реА, рдореНрд╣рдгреВрди рд╡рд╛рдкрд░ рддрд┐рддрдХрд╛ рдкреНрд░рднрд╛рд╡реА рдЕрд╕реВ рд╢рдХрдд рдирд╛рд╣реА рдХрд┐рдВрд╡рд╛ рд╢рдХреНрдп рд╣реЛрдгрд╛рд░ рдирд╛рд╣реА.
VCS рдордзреНрдпреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдбрдВрдк рдХрд╕рд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рд╛рдпрдЪрд╛
рд▓рд╛рдпрдмреНрд░рд░реА saveDump
, рдЬреЗ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рд╕рд░реНрд╡ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреА рд░рдЪрдирд╛ рд╕реНрд╡рддрдВрддреНрд░ рдордЬрдХреВрд░ рдлрд╛рдЗрд▓реНрд╕ рдореНрд╣рдгреВрди рдЬрддрди рдХрд░рддреЗ. рдЖрдЙрдЯрдкреБрдЯ рд╣реА рдбреЗрдЯрд╛рдмреЗрд╕ рд░рдЪрдирд╛ рдЕрд╕рд▓реЗрд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЖрд╣реЗ, рдЬреА рд╕рдореВрд╣рдмрджреНрдз рдлрд╛рдпрд▓реАрдВрдордзреНрдпреЗ рд╡рд┐рднрд╛рдЧрд▓реА рдЖрд╣реЗ рдЬреА VCS рдордзреНрдпреЗ рд╕рд╣рдЬрдкрдгреЗ рдЬреЛрдбрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ.
рдЕрдиреЗрдХ рдЙрджрд╛рд╣рд░рдгреЗ рд╡рд╛рдкрд░реВрди рдбреЗрдЯрд╛рдмреЗрд╕рдордзреВрди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреЗ рдлрд╛рдЗрд▓реНрд╕рдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░ рдХрд░реВрдпрд╛:
рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рдХрд╛рд░
рдпреЛрдЬрдирд╛
рд╢реАрд░реНрд╖рдХ
рдлрд╛рдЗрд▓рдЪрд╛ рд╕рд╛рдкреЗрдХреНрд╖ рдорд╛рд░реНрдЧ
рдЯреЗрдмрд▓
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ
рдЦрд╛рддреА
./public/tables/accounts.txt
рд╕рдВрдЧреНрд░рд╣рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ
auth(рд╣реЕрд╢ рдмрд┐рдЧрд┐рдВрдЯ)
./public/functions/auth(int8).sql
рдкрд░рд┐рдЪрдп
рдмреБрдХрд┐рдВрдЧ
рджрд░
./booking/views/tariffs.txt
рдлрд╛рдпрд▓реАрдВрдЪреА рд╕рд╛рдордЧреНрд░реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯрдЪреНрдпрд╛ рд╕рдВрд░рдЪрдиреЗрдЪреЗ рдордЬрдХреВрд░ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЖрд╣реЗ. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕рдВрдЪрдпрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕рд╛рдареА, рдлрд╛рдЗрд▓рдЪреА рд╕рд╛рдордЧреНрд░реА рдмреНрд▓реЙрдХрдкрд╛рд╕реВрди рд╕реБрд░реВ рд╣реЛрдгрд╛рд░реА, рд╕рдВрдЪрдпрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреА рд╕рдВрдкреВрд░реНрдг рд╡реНрдпрд╛рдЦреНрдпрд╛ рдЕрд╕реЗрд▓. CREATE OR REPLACE FUNCTION
.
рд╡рд░реАрд▓ рд╕рд╛рд░рдгреАрд╡рд░реВрди рдкрд╛рд╣рд┐рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ, рдлрд╛рдИрд▓рдЪрд╛ рдорд╛рд░реНрдЧ рдСрдмреНрдЬреЗрдХреНрдЯрдЪрд╛ рдкреНрд░рдХрд╛рд░, рд╕реНрдХреАрдорд╛ рдЖрдгрд┐ рдирд╛рд╡ рдпрд╛рдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рддреЛ. рд╣рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрди рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рдмрджрд▓рд╛рдВрдЪреНрдпрд╛ рдбрдВрдк рдЖрдгрд┐ рдХреЛрдб рдкреБрдирд░рд╛рд╡рд▓реЛрдХрдирд╛рджреНрд╡рд╛рд░реЗ рдиреЗрд╡реНрд╣рд┐рдЧреЗрдЯ рдХрд░рдгреЗ рд╕реЛрдкреЗ рдХрд░рддреЗ.
рд╡рд┐рд╕реНрддрд╛рд░
.sql
рд╕рдВрдЪрдпрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрддреНрд░реЛрдд рдХреЛрдб рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдлрд╛рдпрд▓реАрдВрд╕рд╛рдареА, рд╣реЗ рдирд┐рд╡рдбрд▓реЗ рд╣реЛрддреЗ рдЬреЗрдгреЗрдХрд░реВрди рдлрд╛рдЗрд▓ рдЙрдШрдбрд▓реНрдпрд╛рд╡рд░ IDE рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдбреЗрдЯрд╛рдмреЗрд╕рд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╛рдзрдиреЗ рдкреНрд░рджрд╛рди рдХрд░рддреЗ.
рдбрдВрдк рд╕реЗрд╡реНрд╣ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдЯреНрд░рдХреНрдЪрд░рдордзреАрд▓ рдмрджрд▓рд╛рдВрдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдХрд╕рд╛ рдШреНрдпрд╛рд╡рд╛
рд╡реНрд╣реАрд╕реАрдПрд╕рдордзреНрдпреЗ рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдЯреНрд░рдХреНрдЪрд░рдЪрд╛ рдбрдВрдк рд╕реЗрд╡реНрд╣ рдХрд░реВрди, рдбрдВрдк рддрдпрд╛рд░ рдЭрд╛рд▓реНрдпрд╛рдирдВрддрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдЯреНрд░рдХреНрдЪрд░рдордзреНрдпреЗ рдмрджрд▓ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд рдХреА рдирд╛рд╣реА рд╣реЗ рддрдкрд╛рд╕рдгреНрдпрд╛рдЪреА рд╕рдВрдзреА рдЖрдореНрд╣рд╛рд▓рд╛ рдорд┐рд│рддреЗ. рдЧреНрд░рдВрдерд╛рд▓рдпрд╛рдд verifyDump
, рдЬреЗ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯреНрд╕рд╢рд┐рд╡рд╛рдп рдорддрднреЗрджрд╛рдВрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рджреЗрддреЗ.
рддрдкрд╛рд╕рдгреНрдпрд╛рдЪрд╛ рдкрд░реНрдпрд╛рдпреА рдорд╛рд░реНрдЧ рдореНрд╣рдгрдЬреЗ рдлрдВрдХреНрд╢рдирд▓рд╛ рдкреБрдиреНрд╣рд╛ рдХреЙрд▓ рдХрд░рдгреЗ saveDump
, рд╕рдорд╛рди рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдЪрд╛ рдирд┐рд░реНрджреЗрд╢ рдХрд░реВрди, рдЖрдгрд┐ рдмрджрд▓рд╛рдВрд╕рд╛рдареА VCS рдордзреНрдпреЗ рддрдкрд╛рд╕рд╛. рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рд╕рд░реНрд╡ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╡реЗрдЧрд│реНрдпрд╛ рдлрд╛рдЗрд▓реНрд╕рдордзреНрдпреЗ рд╕реЗрд╡реНрд╣ рдХреЗрд▓реНрдпрд╛рдореБрд│реЗ, VCS рдлрдХреНрдд рдмрджрд▓рд▓реЗрд▓реНрдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рджрд╛рдЦрд╡реЗрд▓.
рдпрд╛ рдкрджреНрдзрддреАрдЪрд╛ рдореБрдЦреНрдп рддреЛрдЯрд╛ рдореНрд╣рдгрдЬреЗ рдмрджрд▓ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА рдлрд╛рдпрд▓реА рдУрд╡реНрд╣рд░рд░рд╛рдИрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.
рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдиреЗрддреАрд▓ рдмрджрд▓ рдЗрддрд░ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рд╕рдВрдШрд░реНрд╖ рдЖрдгрд┐ рд╡рд┐рд╢рд╛рд▓ рд╕реНрдерд▓рд╛рдВрддрд░ рдлрд╛рдпрд▓реАрдВрд╢рд┐рд╡рд╛рдп рдХрд╕реЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рд╛рд╡реЗ
рдХрд╛рд░реНрдпрд╛рдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж deployDump
рд╕рдВрдЧреНрд░рд╣рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛ рд╕реНрддреНрд░реЛрдд рдХреЛрдб рдирд┐рдпрдорд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрддреНрд░реЛрдд рдХреЛрдб рдкреНрд░рдорд╛рдгреЗрдЪ рд╕рдВрдкрд╛рджрд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. рддреБрдореНрд╣реА рд╕рдВрдЧреНрд░рд╣рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛрдбрдордзреНрдпреЗ рдирд╡реАрди рдУрд│реА рдЬреЛрдбреВ/рд╣рдЯрд╡реВ рд╢рдХрддрд╛ рдЖрдгрд┐ рдЖрд╡реГрддреНрддреА рдирд┐рдпрдВрддреНрд░рдгрд╛рдордзреНрдпреЗ рдмрджрд▓ рдХрд░реВ рд╢рдХрддрд╛ рдХрд┐рдВрд╡рд╛ рдбрдВрдк рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрддреАрд▓ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╛рдЗрд▓реНрд╕ рддрдпрд╛рд░/рд╣рдЯрд╡реВрди рд╕рдВрдЧреНрд░рд╣рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрдпрд╛рд░/рд╣рдЯрд╡реВ рд╢рдХрддрд╛.
рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕реНрдХреАрдорд╛рдордзреНрдпреЗ рдирд╡реАрди рд╕рдВрдЧреНрд░рд╣рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрдпрд╛рд░ рдХрд░рдгреЗ public
рдлрдХреНрдд рд╡рд┐рд╕реНрддрд╛рд░рд╛рд╕рд╣ рдПрдХ рдирд╡реАрди рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░рд╛ .sql
рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд public/functions
, рдмреНрд▓реЙрдХрд╕рд╣, рд╕рдВрдЪрдпрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪрд╛ рд╕реНрддреНрд░реЛрдд рдХреЛрдб рддреНрдпрд╛рдд рдареЗрд╡рд╛ CREATE OR REPLACE FUNCTION
, рдирдВрддрд░ рдлрдВрдХреНрд╢рдирд▓рд╛ рдХреЙрд▓ рдХрд░рд╛ deployDump
. рд╕рдВрдЧреНрд░рд╣рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реБрдзрд╛рд░рдгреЗ рдЖрдгрд┐ рд╣рдЯрд╡рдгреЗ рддреНрдпрд╛рдЪ рдкреНрд░рдХрд╛рд░реЗ рд╣реЛрддреЗ. рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ, рдХреЛрдб рдПрдХрд╛рдЪ рд╡реЗрд│реА VCS рдЖрдгрд┐ рдбреЗрдЯрд╛рдмреЗрд╕ рджреЛрдиреНрд╣реАрдордзреНрдпреЗ рдЬрд╛рддреЛ.
рдХреЛрдгрддреНрдпрд╛рд╣реА рд╕рдВрдЧреНрд░рд╣рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпреЗрдЪреНрдпрд╛ рд╕реНрддреНрд░реЛрдд рдХреЛрдбрдордзреНрдпреЗ рддреНрд░реБрдЯреА рдЖрдврд│рд▓реНрдпрд╛рд╕ рдХрд┐рдВрд╡рд╛ рдлрд╛рдЗрд▓рдЪреНрдпрд╛ рдирд╛рд╡рд╛рдВрдордзреНрдпреЗ рдЖрдгрд┐ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпреЗрдордзреНрдпреЗ рддрдлрд╛рд╡рдд рдЖрдврд│рд▓реНрдпрд╛рд╕, рдирдВрддрд░ deployDump
рддреНрд░реБрдЯреА рдордЬрдХреВрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реВрди рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрдИрд▓. рд╡рд╛рдкрд░рддрд╛рдирд╛ рдбрдВрдк рдЖрдгрд┐ рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рд╕рдВрдЪрдпрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдЪрд╛ рдЬреБрд│рдд рдирд╛рд╣реА deployDump
.
рдирд╡реАрди рд╕рдВрдЧреНрд░рд╣рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛ рддрдпрд╛рд░ рдХрд░рддрд╛рдирд╛, рдпреЛрдЧреНрдп рдлрд╛рдЗрд▓ рдирд╛рд╡ рд╡реНрдпрдХреНрддрд┐рдЪрд▓рд┐рддрдкрдгреЗ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА. рдлрд╛рдИрд▓рдордзреНрдпреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдЕрд╕рдгреЗ рдкреБрд░реЗрд╕реЗ рдЖрд╣реЗ
.sql
. рдХреЙрд▓ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░deployDump
рддреНрд░реБрдЯреА рдордЬрдХреВрд░рд╛рдд рдпреЛрдЧреНрдп рдирд╛рд╡ рдЕрд╕реЗрд▓, рдЬреЗ рдлрд╛рдЗрд▓рдЪреЗ рдирд╛рд╡ рдмрджрд▓рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ.
deployDump
рддреБрдореНрд╣рд╛рд▓рд╛ рдлрдВрдХреНрд╢рдирдЪреЗ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рдмрджрд▓рдгреНрдпрд╛рдЪреА рдХрд┐рдВрд╡рд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреГрддреАрдВрд╢рд┐рд╡рд╛рдп рд░рд┐рдЯрд░реНрди рдЯрд╛рдИрдк рдХрд░рдгреНрдпрд╛рдЪреА рдЕрдиреБрдорддреА рджреЗрддреЗ, рддрд░ рд╢рд╛рд╕реНрддреНрд░реАрдп рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдиреЗ рддреБрдореНрд╣рд╛рд▓рд╛
рдкреНрд░рдердо рдЕрдВрдорд▓рд╛рдд рдЖрдгрд╛ DROP FUNCTION
, ╨░ ╤В╨╛╨╗╤М╨║╨╛ ╨┐╨╛╤В╨╛╨╝ CREATE OR REPLACE FUNCTION
.
рджреБрд░реНрджреИрд╡рд╛рдиреЗ, рдХрд╛рд╣реА рдкрд░рд┐рд╕реНрдерд┐рддреА рдЖрд╣реЗрдд рдЬреЗрдереЗ deployDump
рдмрджрд▓ рдЖрдкреЛрдЖрдк рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдд рдЕрдХреНрд╖рдо. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдХрдореАрддрдХрдореА рдПрдХрд╛ рдЯреНрд░рд┐рдЧрд░рджреНрд╡рд╛рд░реЗ рд╡рд╛рдкрд░рд▓реЗрд▓реЗ рдЯреНрд░рд┐рдЧрд░ рдлрдВрдХреНрд╢рди рдХрд╛рдвреВрди рдЯрд╛рдХрд▓реНрдпрд╛рд╕. рдорд╛рдпрдЧреНрд░реЗрд╢рди рдлрд╛рдЗрд▓реНрд╕ рд╡рд╛рдкрд░реВрди рдЕрд╢рд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдЪреЗ рд╡реНрдпрдХреНрддрд┐рдЪрд▓рд┐рддрдкрдгреЗ рдирд┐рд░рд╛рдХрд░рдг рдХреЗрд▓реЗ рдЬрд╛рддреЗ.
рдЖрдкрдг рд╕рдВрдЪрдпрд┐рдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдВрдордзреНрдпреЗ рдмрджрд▓ рд╕реНрдерд▓рд╛рдВрддрд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЕрд╕рд▓реНрдпрд╛рд╕
рд▓рд╛рдБрдЪ рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА рд╕реНрдерд▓рд╛рдВрддрд░ рд▓рд╛рдЧреВ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ deployDump
. рд╣реЗ рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╕рдВрд░рдЪрдиреЗрдд рд╕рд░реНрд╡ рдмрджрд▓ рдХрд░рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдкрд░рд┐рд╕реНрдерд┐рддреАрдВрдЪреЗ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ рдЬреЗрдгреЗрдХрд░реВрди рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд╛рд░реНрдпрдкрджреНрдзрддреАрдВрдордзреАрд▓ рдмрджрд▓ рдирдВрддрд░ рд╕рдорд╕реНрдпрд╛рдВрд╢рд┐рд╡рд╛рдп рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреАрд▓.
рд╕реНрдерд▓рд╛рдВрддрд░рд╛рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рдЪреЗ рдкреБрдвреАрд▓ рд╡рд┐рднрд╛рдЧрд╛рдВрдордзреНрдпреЗ рдЕрдзрд┐рдХ рддрдкрд╢реАрд▓рд╡рд╛рд░ рд╡рд░реНрдгрди рдХреЗрд▓реЗ рдЬрд╛рдИрд▓.
╨Ъ╨░╨║ ╨╜╨░╨╗╨░╨┤╨╕╤В╤М ╨┐╤А╨╛╤Ж╨╡╤Б╤Б ╨┐╨░╤А╨░╨╗╨╗╨╡╨╗╤М╨╜╨╛╨╣ ╤А╨░╨▒╨╛╤В╤Л ╨╜╨░╨┤ ╨┐╤А╨╛╨╡╨║╤В╨╛╨╝ ╨╜╨╡╤Б╨║╨╛╨╗╤М╨║╨╕╤Е ╤А╨░╨╖╤А╨░╨▒╨╛╤В╤З╨╕╨║╨╛╨▓
рдбреЗрдЯрд╛рдмреЗрд╕рдЪреНрдпрд╛ рд╕рдВрдкреВрд░реНрдг рдкреНрд░рд╛рд░рдВрднрд╛рд╕рд╛рдареА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрдпрд╛рд░ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЬреЗ рд╡рд┐рдХрд╕рдХ рддреНрдпрд╛рдЪреНрдпрд╛ рд╡рд░реНрдХ рдорд╢реАрдирд╡рд░ рд▓реЙрдиреНрдЪ рдХрд░реЗрд▓, рд╕реНрдерд╛рдирд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕рдЪреА рд░рдЪрдирд╛ рд╡реНрд╣реАрд╕реАрдПрд╕рдордзреНрдпреЗ рдЬрддрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдбрдВрдкрдЪреНрдпрд╛ рдЕрдиреБрд╖рдВрдЧрд╛рдиреЗ рдЖрдгреЗрд▓. рд╕реНрдерд╛рдирд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕рдЪреЗ рдЖрд░рдВрднреАрдХрд░рдг 3 рдЪрд░рдгрд╛рдВрдордзреНрдпреЗ рд╡рд┐рднрд╛рдЧрдгреЗ рд╣рд╛ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкрд╛ рдорд╛рд░реНрдЧ рдЖрд╣реЗ:
- рдореВрд▓рднреВрдд рд░рдЪрдирд╛ рдЕрд╕рд▓реЗрд▓реА рдлрд╛рдЗрд▓ рдЖрдпрд╛рдд рдХрд░рд╛ рдЬрд┐рд▓рд╛ рдЙрджрд╛.
base.sql
- рд╕реНрдерд▓рд╛рдВрддрд░ рд▓рд╛рдЧреВ рдХрд░рдгреЗ
- рдЖрд╡реНрд╣рд╛рди
deployDump
base.sql
рд╣рд╛ рдкреНрд░рд╛рд░рдВрдн рдмрд┐рдВрджреВ рдЖрд╣реЗ рдЬреНрдпрд╛рдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА рд╕реНрдерд▓рд╛рдВрддрд░реЗ рд▓рд╛рдЧреВ рдЖрдгрд┐ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реА рдЬрд╛рддрд╛рддdeployDump
рддреЗ рдЖрд╣реЗbase.sql + ╨╝╨╕╨│╤А╨░╤Ж╨╕╨╕ + deployDump = ╨░╨║╤В╤Г╨░╨╗╤М╨╜╨░╤П ╤Б╤В╤А╤Г╨║╤В╤Г╤А╨░ ╨С╨Ф
. рдпреБрдЯрд┐рд▓рд┐рдЯреА рд╡рд╛рдкрд░реВрди рддреБрдореНрд╣реА рдЕрд╢реА рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛pg_dump
. рд╡рд╛рдкрд░рд▓реЗbase.sql
рдХреЗрд╡рд│ рд╕реБрд░рд╡рд╛рддреАрдкрд╛рд╕реВрди рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реБрд░реВ рдХрд░рддрд╛рдирд╛.
рд╕рдВрдкреВрд░реНрдг рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдирд┐рд╢рд┐рдПрд▓рд╛рдпрдЭреЗрд╢рдирд╕рд╛рдареА рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓рд╛ рдХреЙрд▓ рдХрд░реВрдпрд╛ refresh.sh
. рд╡рд░реНрдХрдлреНрд▓реЛ рдпрд╛рд╕рд╛рд░рдЦреЗ рджрд┐рд╕реВ рд╢рдХрддреЗ:
- рд╡рд┐рдХрд╕рдХ рддреНрдпрд╛рдЪреНрдпрд╛ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рд▓рд╛рдБрдЪ рдХрд░рддреЛ
refresh.sh
рдЖрдгрд┐ рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдорд┐рд│рддреЗ - рд╡рд┐рдХрд╕рдХ рдирд╡реАрди рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреНрдпрд╛ рдЧрд░рдЬрд╛ рдкреВрд░реНрдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдерд╛рдирд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдмрджрд▓ рдХрд░реВрди рд╣рд╛рддрд╛рддреАрд▓ рдХрд╛рд░реНрдпрд╛рд╡рд░ рдХрд╛рдо рд╕реБрд░реВ рдХрд░рддреЛ (
ALTER TABLE ... ADD COLUMN
рдЗ) - рдХрд╛рд░реНрдп рдкреВрд░реНрдг рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рд╡рд┐рдХрд╕рдХ рдлрдВрдХреНрд╢рдирд▓рд╛ рдХреЙрд▓ рдХрд░рддреЛ
saveDump
VCS рдордзреАрд▓ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдХреЗрд▓реЗрд▓реЗ рдмрджрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА - рд╡рд┐рдХрд╕рдХ рдкреБрдиреНрд╣рд╛ рд▓рд╛рдБрдЪ рдХрд░рд╛
refresh.sh
рдордЧverifyDump
рдЬреЗ рдЖрддрд╛ рд╕реНрдерд▓рд╛рдВрддрд░рд╛рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдмрджрд▓рд╛рдВрдЪреА рд╕реВрдЪреА рджрд╛рдЦрд╡рддреЗ - рд╡рд┐рдХрд╕рдХ рд╕рд░реНрд╡ рд╕рдВрд░рдЪрдирд╛ рдмрджрд▓ рд╕реНрдерд▓рд╛рдВрддрд░ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЛ, рдкреБрдиреНрд╣рд╛ рдЪрд╛рд▓рддреЛ
refresh.sh
╨╕verifyDump
, рдЖрдгрд┐, рд╕реНрдерд▓рд╛рдВрддрд░ рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рд╕,verifyDump
рд╕реНрдерд╛рдирд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдгрд┐ рдЬрддрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдбрдВрдкрдордзреНрдпреЗ рдХреЛрдгрддрд╛рд╣реА рдлрд░рдХ рджрд╛рдЦрд╡рдгрд╛рд░ рдирд╛рд╣реА
рд╡рд░ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЧрд┐рдЯрдлреНрд▓реЛ рддрддреНрддреНрд╡рд╛рдВрд╢реА рд╕реБрд╕рдВрдЧрдд рдЖрд╣реЗ. VCS рдордзреАрд▓ рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рдЦреЗрдд рдбрдВрдкрдЪреА рд╕реНрд╡рддрдГрдЪреА рдЖрд╡реГрддреНрддреА рдЕрд╕реЗрд▓ рдЖрдгрд┐ рд╢рд╛рдЦрд╛ рд╡рд┐рд▓реАрди рдХрд░рддрд╛рдирд╛, рдбрдВрдк рд╡рд┐рд▓реАрди рдХреЗрд▓реЗ рдЬрд╛рддреАрд▓. рдмрд░реНтАНрдпрд╛рдЪ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ, рд╡рд┐рд▓реАрдиреАрдХрд░рдгрд╛рдирдВрддрд░ рдХреЛрдгрддреАрд╣реА рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░рд╡рд╛рдИ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА, рдкрд░рдВрддреБ рдЬрд░ рдмрджрд▓ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╢рд╛рдЦрд╛рдВрдордзреНрдпреЗ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЕрд╕рддреАрд▓, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕рдорд╛рди рдЯреЗрдмрд▓рд╡рд░, рд╕рдВрдШрд░реНрд╖ рдЙрджреНрднрд╡реВ рд╢рдХрддреЛ.
рдЙрджрд╛рд╣рд░рдг рд╡рд╛рдкрд░реВрди рд╕рдВрдШрд░реНрд╖рд╛рдЪреНрдпрд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдпрд╛: рдПрдХ рд╢рд╛рдЦрд╛ рдЖрд╣реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рд╛, рдЬреНрдпрд╛рдкрд╛рд╕реВрди рджреЛрди рд╢рд╛рдЦрд╛ рдЖрд╣реЗрдд: рд╡реИрд╢рд┐рд╖реНрдЯреНрдп 1 ╨╕ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп 2, рдЬреНрдпрд╛рдЪрд╛ рдХреЛрдгрддрд╛рд╣реА рд╡рд┐рд░реЛрдз рдирд╛рд╣реА рд╡рд┐рдХрд╕рд┐рдд рдХрд░рд╛, рдкрд░рдВрддреБ рдПрдХрдореЗрдХрд╛рдВрд╢реА рдорддрднреЗрдж рдЖрд╣реЗрдд. рдХрд╛рд░реНрдп рджреЛрдиреНрд╣реА рд╢рд╛рдЦрд╛рдВрдордзреНрдпреЗ рд╡рд┐рд▓реАрди рдХрд░рдгреЗ рдЖрд╣реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рд╛. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдкреНрд░рдердо рд╢рд╛рдЦрд╛рдВрдкреИрдХреА рдПрдХ рд╡рд┐рд▓реАрди рдХрд░рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХреЗрд▓реА рдЬрд╛рддреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рд╛рдЖрдгрд┐ рдирдВрддрд░ рд╡рд┐рд▓реАрди рдХрд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рд╛ рдЙрд░реНрд╡рд░рд┐рдд рд╢рд╛рдЦреЗрдд, рдЙрд░реНрд╡рд░рд┐рдд рд╢рд╛рдЦреЗрддреАрд▓ рд╕рдВрдШрд░реНрд╖ рд╕реЛрдбрд╡рдгреЗ рдЖрдгрд┐ рдирдВрддрд░ рд╢реЗрд╡рдЯрдЪреА рд╢рд╛рдЦрд╛ рд╡рд┐рд▓реАрди рдХрд░рдгреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рд╛. рд╡рд┐рд╡рд╛рдж рдирд┐рд░рд╛рдХрд░рдг рдЯрдкреНрдкреНрдпрд╛рдд, рддреБрдореНрд╣рд╛рд▓рд╛ рд╢реЗрд╡рдЯрдЪреНрдпрд╛ рд╢рд╛рдЦреЗрдд рд╕реНрдерд▓рд╛рдВрддрд░рдг рдлрд╛рдЗрд▓ рдирд┐рд╢реНрдЪрд┐рдд рдХрд░рд╛рд╡реА рд▓рд╛рдЧреЗрд▓ рдЬреЗрдгреЗрдХрд░реВрди рддреА рдЕрдВрддрд┐рдо рдбрдВрдкрд╢реА рдЬреБрд│реЗрд▓, рдЬреНрдпрд╛рдордзреНрдпреЗ рд╡рд┐рд▓реАрдиреАрдХрд░рдгрд╛рдЪреЗ рдкрд░рд┐рдгрд╛рдо рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд.
рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдиреЗрддреАрд▓ рдЕрдзрд┐рдХ рдмрджрд▓ рд╕реБрд░рдХреНрд╖рд┐рддрдкрдгреЗ рдХрд╕реЗ рддреИрдирд╛рдд рдХрд░рд╛рд╡реЗ
VCS рдордзреАрд▓ рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдиреЗрдЪреНрдпрд╛ рдбрдВрдкрдЪреНрдпрд╛ рдЙрдкрд╕реНрдерд┐рддреАрдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд░рдЪрдиреЗрдЪреЗ рдЕрдЪреВрдХ рдкрд╛рд▓рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЙрддреНрдкрд╛рджрди рдбреЗрдЯрд╛рдмреЗрд╕ рддрдкрд╛рд╕рдгреЗ рд╢рдХреНрдп рд╣реЛрддреЗ. рд╣реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рдХреА рдбреЗрд╡реНрд╣рд▓рдкрд░реНрд╕рдирд╛ рдЕрднрд┐рдкреНрд░реЗрдд рдЕрд╕рд▓реЗрд▓реЗ рд╕рд░реНрд╡ рдмрджрд▓ рдЙрддреНрдкрд╛рджрди рдмреЗрд╕рд╡рд░ рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд.
рдЕрд╕рд▓реНрдпрд╛рдиреЗ ROLLBACK
:
- рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реБрд░реВ рдХрд░рд╛
- рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдд рд╕рд░реНрд╡ рд╕реНрдерд▓рд╛рдВрддрд░ рдХрд░рд╛
- рддреНрдпрд╛рдЪ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдд, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рд╛
deployDump
- рд╡реНрдпрд╡рд╣рд╛рд░ рдкреВрд░реНрдг рди рдХрд░рддрд╛, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рд╛
verifyDump
. рдХрд╛рд╣реА рддреНрд░реБрдЯреА рдирд╕рд▓реНрдпрд╛рд╕, рдЪрд╛рд▓рд╡рд╛COMMIT
. рддреНрд░реБрдЯреА рдЕрд╕рд▓реНрдпрд╛рд╕, рдЪрд╛рд▓рд╡рд╛ROLLBACK
рд╢реВрдиреНрдп-рдбрд╛рдЙрдирдЯрд╛рдЗрдорд╕рд╣, рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯрдЪреНрдпрд╛ рд╡рд┐рджреНрдпрдорд╛рди рдкрдзреНрджрддреАрдВрдордзреНрдпреЗ рд╣реЗ рдЪрд░рдг рд╕рд╣рдЬрдкрдгреЗ рдПрдХрддреНрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд.
рдирд┐рд╖реНрдХрд░реНрд╖
рд╡рд░ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкрджреНрдзрддреАрдВрдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, "PHP + PostgreSQL" рдкреНрд░рдХрд▓реНрдкрд╛рдВрдордзреВрди рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдкрд┐рд│рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ, рдореБрдЦреНрдп рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдбрдордзреАрд▓ рд╕рд░реНрд╡ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рддреБрд▓рдиреЗрдиреЗ рдХрдореА рд╡рд┐рдХрд╛рд╕ рд╕реБрд╡рд┐рдзрд╛рдВрдЪрд╛ рддреНрдпрд╛рдЧ рдХрд░рдгреЗ. рд╢рд┐рд╡рд╛рдп, рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдордзреНрдпреЗ
рд╕реНрддреНрд░реЛрдд: www.habr.com