SchemaKeeper рд╡рд╛рдкрд░реВрди рдбреЗрдЯрд╛рдмреЗрд╕рдордзреАрд▓ рд╡реНрдпрд╡рд╕рд╛рдп рддрд░реНрдХ

рдпрд╛ рд▓реЗрдЦрд╛рдЪрд╛ рдЙрджреНрджреЗрд╢ рдЧреНрд░рдВрдерд╛рд▓рдпрд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг рд╡рд╛рдкрд░рдгреЗ рд╣рд╛ рдЖрд╣реЗ рд╕реНрдХреАрдорд╛-рдХреАрдкрд░ рдЕрд╢реА рд╕рд╛рдзрдиреЗ рджрд╛рдЦрд╡рд╛ рдЬреА PostgreSQL DBMS рд╡рд╛рдкрд░реВрди PHP рдкреНрд░рдХрд▓реНрдкрд╛рдВрдордзреНрдпреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рд╕реБрд▓рдн рдХрд░реВ рд╢рдХрддрд╛рдд.

рдпрд╛ рд▓реЗрдЦрд╛рддреАрд▓ рдорд╛рд╣рд┐рддреА, рд╕рд░реНрд╡рдкреНрд░рдердо, рдЬреНрдпрд╛ рд╡рд┐рдХрд╛рд╕рдХрд╛рдВрдирд╛ PostgreSQL рдХреНрд╖рдорддрд╛рдВрдЪрд╛ рдЕрдзрд┐рдХрд╛рдзрд┐рдХ рдлрд╛рдпрджрд╛ рдШреНрдпрд╛рдпрдЪрд╛ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдареЗрд╡рд▓реЗрд▓реЗ рд╡реНрдпрд╡рд╕рд╛рдп рддрд░реНрдХ рд░рд╛рдЦрдгреНрдпрд╛рдд рд╕рдорд╕реНрдпрд╛ рдпреЗрдд рдЖрд╣реЗрдд рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рдЙрдкрдпреБрдХреНрдд рдард░реЗрд▓.

рд╣рд╛ рд▓реЗрдЦ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рд╡реНрдпрд╡рд╕рд╛рдп рддрд░реНрдХ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХрд░рдгреНрдпрд╛рдЪреЗ рдлрд╛рдпрджреЗ рдХрд┐рдВрд╡рд╛ рддреЛрдЯреЗ рд╡рд░реНрдгрди рдХрд░рдгрд╛рд░ рдирд╛рд╣реА. рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░рд▓реЗ рдЬрд╛рддреЗ рдХреА рдирд┐рд╡рдб рд╡рд╛рдЪрдХрд╛рдиреЗ рдЖрдзреАрдЪ рдХреЗрд▓реА рдЖрд╣реЗ.

рдЦрд╛рд▓реАрд▓ рдкреНрд░рд╢реНрдирд╛рдВрдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛ рдЬрд╛рдИрд▓:

  1. рдЖрд╡реГрддреНрддреА рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реАрдордзреНрдпреЗ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдбрдВрдк рдХреЛрдгрддреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рд╕рдВрдЧреНрд░рд╣рд┐рдд рдХреЗрд▓рд╛ рдЬрд╛рд╡рд╛ (рдпрд╛рдкреБрдвреЗ рд╡реНрд╣реАрд╕реАрдПрд╕ рдореНрд╣рдгреВрди рд╕рдВрджрд░реНрднрд┐рдд)
  2. рдбрдВрдк рд╕реЗрд╡реНрд╣ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реНрдЯреНрд░рдХреНрдЪрд░рдордзреАрд▓ рдмрджрд▓рд╛рдВрдЪрд╛ рдорд╛рдЧреЛрд╡рд╛ рдХрд╕рд╛ рдШреНрдпрд╛рд╡рд╛
  3. рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдиреЗрддреАрд▓ рдмрджрд▓ рдЗрддрд░ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рд╕рдВрдШрд░реНрд╖ рдЖрдгрд┐ рд╡рд┐рд╢рд╛рд▓ рд╕реНрдерд▓рд╛рдВрддрд░ рдлрд╛рдпрд▓реАрдВрд╢рд┐рд╡рд╛рдп рдХрд╕реЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рд╛рд╡реЗ
  4. ╨Ъ╨░╨║ ╨╜╨░╨╗╨░╨┤╨╕╤В╤М ╨┐╤А╨╛╤Ж╨╡╤Б╤Б ╨┐╨░╤А╨░╨╗╨╗╨╡╨╗╤М╨╜╨╛╨╣ ╤А╨░╨▒╨╛╤В╤Л ╨╜╨░╨┤ ╨┐╤А╨╛╨╡╨║╤В╨╛╨╝ ╨╜╨╡╤Б╨║╨╛╨╗╤М╨║╨╕╤Е ╤А╨░╨╖╤А╨░╨▒╨╛╤В╤З╨╕╨║╨╛╨▓
  5. рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдиреЗрддреАрд▓ рдЕрдзрд┐рдХ рдмрджрд▓ рд╕реБрд░рдХреНрд╖рд┐рддрдкрдгреЗ рдХрд╕реЗ рддреИрдирд╛рдд рдХрд░рд╛рд╡реЗ

    рд╕реНрдХреАрдордХреАрдкрд░ рднрд╛рд╖реЗрдд рд▓рд┐рд╣рд┐рд▓реЗрд▓реНрдпрд╛ рд╕рдВрдЧреНрд░рд╣рд┐рдд рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реЗрд▓реЗ 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 рдЪрд░рдгрд╛рдВрдордзреНрдпреЗ рд╡рд┐рднрд╛рдЧрдгреЗ рд╣рд╛ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкрд╛ рдорд╛рд░реНрдЧ рдЖрд╣реЗ:

  1. рдореВрд▓рднреВрдд рд░рдЪрдирд╛ рдЕрд╕рд▓реЗрд▓реА рдлрд╛рдЗрд▓ рдЖрдпрд╛рдд рдХрд░рд╛ рдЬрд┐рд▓рд╛ рдЙрджрд╛. base.sql
  2. рд╕реНрдерд▓рд╛рдВрддрд░ рд▓рд╛рдЧреВ рдХрд░рдгреЗ
  3. рдЖрд╡реНрд╣рд╛рди deployDump

base.sql рд╣рд╛ рдкреНрд░рд╛рд░рдВрдн рдмрд┐рдВрджреВ рдЖрд╣реЗ рдЬреНрдпрд╛рдЪреНрдпрд╛ рд╢реАрд░реНрд╖рд╕реНрдерд╛рдиреА рд╕реНрдерд▓рд╛рдВрддрд░реЗ рд▓рд╛рдЧреВ рдЖрдгрд┐ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реА рдЬрд╛рддрд╛рдд deployDumpрддреЗ рдЖрд╣реЗ base.sql + ╨╝╨╕╨│╤А╨░╤Ж╨╕╨╕ + deployDump = ╨░╨║╤В╤Г╨░╨╗╤М╨╜╨░╤П ╤Б╤В╤А╤Г╨║╤В╤Г╤А╨░ ╨С╨Ф. рдпреБрдЯрд┐рд▓рд┐рдЯреА рд╡рд╛рдкрд░реВрди рддреБрдореНрд╣реА рдЕрд╢реА рдлрд╛рдЗрд▓ рддрдпрд╛рд░ рдХрд░реВ рд╢рдХрддрд╛ pg_dump. рд╡рд╛рдкрд░рд▓реЗ base.sql рдХреЗрд╡рд│ рд╕реБрд░рд╡рд╛рддреАрдкрд╛рд╕реВрди рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реБрд░реВ рдХрд░рддрд╛рдирд╛.

рд╕рдВрдкреВрд░реНрдг рдбреЗрдЯрд╛рдмреЗрд╕ рдЗрдирд┐рд╢рд┐рдПрд▓рд╛рдпрдЭреЗрд╢рдирд╕рд╛рдареА рд╕реНрдХреНрд░рд┐рдкреНрдЯрд▓рд╛ рдХреЙрд▓ рдХрд░реВрдпрд╛ refresh.sh. рд╡рд░реНрдХрдлреНрд▓реЛ рдпрд╛рд╕рд╛рд░рдЦреЗ рджрд┐рд╕реВ рд╢рдХрддреЗ:

  1. рд╡рд┐рдХрд╕рдХ рддреНрдпрд╛рдЪреНрдпрд╛ рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рд▓рд╛рдБрдЪ рдХрд░рддреЛ refresh.sh рдЖрдгрд┐ рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдорд┐рд│рддреЗ
  2. рд╡рд┐рдХрд╕рдХ рдирд╡реАрди рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдЪреНрдпрд╛ рдЧрд░рдЬрд╛ рдкреВрд░реНрдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрдерд╛рдирд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдмрджрд▓ рдХрд░реВрди рд╣рд╛рддрд╛рддреАрд▓ рдХрд╛рд░реНрдпрд╛рд╡рд░ рдХрд╛рдо рд╕реБрд░реВ рдХрд░рддреЛ (ALTER TABLE ... ADD COLUMN рдЗ)
  3. рдХрд╛рд░реНрдп рдкреВрд░реНрдг рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, рд╡рд┐рдХрд╕рдХ рдлрдВрдХреНрд╢рдирд▓рд╛ рдХреЙрд▓ рдХрд░рддреЛ saveDumpVCS рдордзреАрд▓ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рдХреЗрд▓реЗрд▓реЗ рдмрджрд▓ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА
  4. рд╡рд┐рдХрд╕рдХ рдкреБрдиреНрд╣рд╛ рд▓рд╛рдБрдЪ рдХрд░рд╛ refresh.shрдордЧ verifyDumpрдЬреЗ рдЖрддрд╛ рд╕реНрдерд▓рд╛рдВрддрд░рд╛рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдмрджрд▓рд╛рдВрдЪреА рд╕реВрдЪреА рджрд╛рдЦрд╡рддреЗ
  5. рд╡рд┐рдХрд╕рдХ рд╕рд░реНрд╡ рд╕рдВрд░рдЪрдирд╛ рдмрджрд▓ рд╕реНрдерд▓рд╛рдВрддрд░ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЛ, рдкреБрдиреНрд╣рд╛ рдЪрд╛рд▓рддреЛ refresh.sh ╨╕ verifyDump, рдЖрдгрд┐, рд╕реНрдерд▓рд╛рдВрддрд░ рдпреЛрдЧреНрдпрд░рд┐рддреНрдпрд╛ рд╕рдВрдХрд▓рд┐рдд рдХреЗрд▓реЗ рдЕрд╕рд▓реНрдпрд╛рд╕, verifyDump рд╕реНрдерд╛рдирд┐рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдгрд┐ рдЬрддрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдбрдВрдкрдордзреНрдпреЗ рдХреЛрдгрддрд╛рд╣реА рдлрд░рдХ рджрд╛рдЦрд╡рдгрд╛рд░ рдирд╛рд╣реА

рд╡рд░ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЧрд┐рдЯрдлреНрд▓реЛ рддрддреНрддреНрд╡рд╛рдВрд╢реА рд╕реБрд╕рдВрдЧрдд рдЖрд╣реЗ. VCS рдордзреАрд▓ рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рдЦреЗрдд рдбрдВрдкрдЪреА рд╕реНрд╡рддрдГрдЪреА рдЖрд╡реГрддреНрддреА рдЕрд╕реЗрд▓ рдЖрдгрд┐ рд╢рд╛рдЦрд╛ рд╡рд┐рд▓реАрди рдХрд░рддрд╛рдирд╛, рдбрдВрдк рд╡рд┐рд▓реАрди рдХреЗрд▓реЗ рдЬрд╛рддреАрд▓. рдмрд░реНтАНрдпрд╛рдЪ рдкреНрд░рдХрд░рдгрд╛рдВрдордзреНрдпреЗ, рд╡рд┐рд▓реАрдиреАрдХрд░рдгрд╛рдирдВрддрд░ рдХреЛрдгрддреАрд╣реА рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░рд╡рд╛рдИ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА, рдкрд░рдВрддреБ рдЬрд░ рдмрджрд▓ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рд╢рд╛рдЦрд╛рдВрдордзреНрдпреЗ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЕрд╕рддреАрд▓, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рд╕рдорд╛рди рдЯреЗрдмрд▓рд╡рд░, рд╕рдВрдШрд░реНрд╖ рдЙрджреНрднрд╡реВ рд╢рдХрддреЛ.

рдЙрджрд╛рд╣рд░рдг рд╡рд╛рдкрд░реВрди рд╕рдВрдШрд░реНрд╖рд╛рдЪреНрдпрд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХрд░реВрдпрд╛: рдПрдХ рд╢рд╛рдЦрд╛ рдЖрд╣реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рд╛, рдЬреНрдпрд╛рдкрд╛рд╕реВрди рджреЛрди рд╢рд╛рдЦрд╛ рдЖрд╣реЗрдд: рд╡реИрд╢рд┐рд╖реНрдЯреНрдп 1 ╨╕ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп 2, рдЬреНрдпрд╛рдЪрд╛ рдХреЛрдгрддрд╛рд╣реА рд╡рд┐рд░реЛрдз рдирд╛рд╣реА рд╡рд┐рдХрд╕рд┐рдд рдХрд░рд╛, рдкрд░рдВрддреБ рдПрдХрдореЗрдХрд╛рдВрд╢реА рдорддрднреЗрдж рдЖрд╣реЗрдд. рдХрд╛рд░реНрдп рджреЛрдиреНрд╣реА рд╢рд╛рдЦрд╛рдВрдордзреНрдпреЗ рд╡рд┐рд▓реАрди рдХрд░рдгреЗ рдЖрд╣реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рд╛. рдпрд╛ рдкреНрд░рдХрд░рдгрд╛рдд, рдкреНрд░рдердо рд╢рд╛рдЦрд╛рдВрдкреИрдХреА рдПрдХ рд╡рд┐рд▓реАрди рдХрд░рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХреЗрд▓реА рдЬрд╛рддреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рд╛рдЖрдгрд┐ рдирдВрддрд░ рд╡рд┐рд▓реАрди рдХрд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рд╛ рдЙрд░реНрд╡рд░рд┐рдд рд╢рд╛рдЦреЗрдд, рдЙрд░реНрд╡рд░рд┐рдд рд╢рд╛рдЦреЗрддреАрд▓ рд╕рдВрдШрд░реНрд╖ рд╕реЛрдбрд╡рдгреЗ рдЖрдгрд┐ рдирдВрддрд░ рд╢реЗрд╡рдЯрдЪреА рд╢рд╛рдЦрд╛ рд╡рд┐рд▓реАрди рдХрд░рдгреЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рд╛. рд╡рд┐рд╡рд╛рдж рдирд┐рд░рд╛рдХрд░рдг рдЯрдкреНрдкреНрдпрд╛рдд, рддреБрдореНрд╣рд╛рд▓рд╛ рд╢реЗрд╡рдЯрдЪреНрдпрд╛ рд╢рд╛рдЦреЗрдд рд╕реНрдерд▓рд╛рдВрддрд░рдг рдлрд╛рдЗрд▓ рдирд┐рд╢реНрдЪрд┐рдд рдХрд░рд╛рд╡реА рд▓рд╛рдЧреЗрд▓ рдЬреЗрдгреЗрдХрд░реВрди рддреА рдЕрдВрддрд┐рдо рдбрдВрдкрд╢реА рдЬреБрд│реЗрд▓, рдЬреНрдпрд╛рдордзреНрдпреЗ рд╡рд┐рд▓реАрдиреАрдХрд░рдгрд╛рдЪреЗ рдкрд░рд┐рдгрд╛рдо рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд.

рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдиреЗрддреАрд▓ рдЕрдзрд┐рдХ рдмрджрд▓ рд╕реБрд░рдХреНрд╖рд┐рддрдкрдгреЗ рдХрд╕реЗ рддреИрдирд╛рдд рдХрд░рд╛рд╡реЗ

VCS рдордзреАрд▓ рд╡рд░реНрддрдорд╛рди рдбреЗрдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдиреЗрдЪреНрдпрд╛ рдбрдВрдкрдЪреНрдпрд╛ рдЙрдкрд╕реНрдерд┐рддреАрдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, рдЖрд╡рд╢реНрдпрдХ рд╕рдВрд░рдЪрдиреЗрдЪреЗ рдЕрдЪреВрдХ рдкрд╛рд▓рди рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЙрддреНрдкрд╛рджрди рдбреЗрдЯрд╛рдмреЗрд╕ рддрдкрд╛рд╕рдгреЗ рд╢рдХреНрдп рд╣реЛрддреЗ. рд╣реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рдХреА рдбреЗрд╡реНрд╣рд▓рдкрд░реНрд╕рдирд╛ рдЕрднрд┐рдкреНрд░реЗрдд рдЕрд╕рд▓реЗрд▓реЗ рд╕рд░реНрд╡ рдмрджрд▓ рдЙрддреНрдкрд╛рджрди рдмреЗрд╕рд╡рд░ рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд.

рдЕрд╕рд▓реНрдпрд╛рдиреЗ рдбреАрдбреАрдПрд▓ PostgreSQL рдордзреНрдпреЗ рдЖрд╣реЗ рд╡реНрдпрд╡рд╣рд╛рд░, рдЦрд╛рд▓реАрд▓ рддреИрдирд╛рддреА рдСрд░реНрдбрд░рдЪреЗ рдкрд╛рд▓рди рдХрд░рдгреНрдпрд╛рдЪреА рд╢рд┐рдлрд╛рд░рд╕ рдХреЗрд▓реА рдЬрд╛рддреЗ, рдЬреЗрдгреЗрдХрд░реВрди, рдЕрдирдкреЗрдХреНрд╖рд┐рдд рддреНрд░реБрдЯреА рдЭрд╛рд▓реНрдпрд╛рд╕, рдЖрдкрдг "рд╡реЗрджрдирд╛рд░рд╣рд┐рдд" рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реВ рд╢рдХрддрд╛ ROLLBACK:

  1. рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реБрд░реВ рдХрд░рд╛
  2. рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдд рд╕рд░реНрд╡ рд╕реНрдерд▓рд╛рдВрддрд░ рдХрд░рд╛
  3. рддреНрдпрд╛рдЪ рд╡реНрдпрд╡рд╣рд╛рд░рд╛рдд, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рд╛ deployDump
  4. рд╡реНрдпрд╡рд╣рд╛рд░ рдкреВрд░реНрдг рди рдХрд░рддрд╛, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рд╛ verifyDump. рдХрд╛рд╣реА рддреНрд░реБрдЯреА рдирд╕рд▓реНрдпрд╛рд╕, рдЪрд╛рд▓рд╡рд╛ COMMIT. рддреНрд░реБрдЯреА рдЕрд╕рд▓реНрдпрд╛рд╕, рдЪрд╛рд▓рд╡рд╛ ROLLBACK

рд╢реВрдиреНрдп-рдбрд╛рдЙрдирдЯрд╛рдЗрдорд╕рд╣, рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд┐рдкреНрд▓реЙрдпрдореЗрдВрдЯрдЪреНрдпрд╛ рд╡рд┐рджреНрдпрдорд╛рди рдкрдзреНрджрддреАрдВрдордзреНрдпреЗ рд╣реЗ рдЪрд░рдг рд╕рд╣рдЬрдкрдгреЗ рдПрдХрддреНрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддрд╛рдд.

рдирд┐рд╖реНрдХрд░реНрд╖

рд╡рд░ рд╡рд░реНрдгрди рдХреЗрд▓реЗрд▓реНрдпрд╛ рдкрджреНрдзрддреАрдВрдмрджреНрджрд▓ рдзрдиреНрдпрд╡рд╛рдж, "PHP + PostgreSQL" рдкреНрд░рдХрд▓реНрдкрд╛рдВрдордзреВрди рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдкрд┐рд│рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ, рдореБрдЦреНрдп рдНрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдбрдордзреАрд▓ рд╕рд░реНрд╡ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рддреБрд▓рдиреЗрдд рддреБрд▓рдиреЗрдиреЗ рдХрдореА рд╡рд┐рдХрд╛рд╕ рд╕реБрд╡рд┐рдзрд╛рдВрдЪрд╛ рддреНрдпрд╛рдЧ рдХрд░рдгреЗ. рд╢рд┐рд╡рд╛рдп, рдбреЗрдЯрд╛ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдордзреНрдпреЗ PL/pgSQL рдЕрдиреЗрдХрджрд╛ рдЕрдзрд┐рдХ рдкрд╛рд░рджрд░реНрд╢рдХ рджрд┐рд╕рддреЗ рдЖрдгрд┐ PHP рдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реЗрд▓реНрдпрд╛ рд╕рдорд╛рди рдХрд╛рд░реНрдпрдХреНрд╖рдорддреЗрдкреЗрдХреНрд╖рд╛ рдХрдореА рдХреЛрдб рдЖрд╡рд╢реНрдпрдХ рдЕрд╕рддреЛ.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛