SchemaKeeper рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ

рдпрд╕ рд▓реЗрдЦрдХреЛ рдЙрджреНрджреЗрд╢реНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпрдХреЛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБ рд╣реЛ рдпреЛрдЬрдирд╛-рдХрд┐рдкрд░ PostgreSQL DBMS рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ PHP рдкрд░рд┐рдпреЛрдЬрдирд╛рд╣рд░реВ рднрд┐рддреНрд░ рдбрд╛рдЯрд╛рдмреЗрд╕рд╣рд░реВ рд╡рд┐рдХрд╛рд╕ рдЧрд░реНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕рд░рд▓ рдмрдирд╛рдЙрди рд╕рдХреНрдиреЗ рдЙрдкрдХрд░рдгрд╣рд░реВ рджреЗрдЦрд╛рдЙрдиреБрд╣реЛрд╕реНред

рдпрд╕ рд▓реЗрдЦрдмрд╛рдЯ рдкреНрд░рд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реА, рд╕рдмреИрднрдиреНрджрд╛ рдкрд╣рд┐рд▓реЗ, PostgreSQL рдХреНрд╖рдорддрд╛рд╣рд░реВрдХреЛ рдЕрдзрд┐рдХрддрдо рдЙрдкрдпреЛрдЧ рдЧрд░реНрди рдЪрд╛рд╣рдиреЗ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдЙрдкрдпреЛрдЧреА рд╣реБрдиреЗрдЫ, рддрд░ рдбреЗрдЯрд╛рдмреЗрд╕рдорд╛ рд░рд╛рдЦрд┐рдПрдХреЛ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХрд╛рдпрдо рд░рд╛рдЦреНрди рд╕рдорд╕реНрдпрд╛рд╣рд░реВрдХреЛ рд╕рд╛рдордирд╛ рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫрдиреНред

рдпрд╕ рд▓реЗрдЦрд▓реЗ рдбреЗрдЯрд╛рдмреЗрд╕рдорд╛ рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдиреЗ рдлрд╛рдЗрджрд╛ рд╡рд╛ рдмреЗрдлрд╛рдЗрджрд╛рд╣рд░реВ рд╡рд░реНрдгрди рдЧрд░реНрджреИрдиред рдпреЛ рдорд╛рдирд┐рдиреНрдЫ рдХрд┐ рдкрд╛рдардХ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рдЫрдиреМрдЯ рдЧрд░рд┐рдПрдХреЛ рдЫред

рдирд┐рдореНрди рдкреНрд░рд╢реНрдирд╣рд░реВ рд╡рд┐рдЪрд╛рд░ рдЧрд░рд┐рдиреЗрдЫ:

  1. рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдбрдореНрдк рдХреБрди рд░реВрдкрдорд╛ рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдиреНрддреНрд░рдг рдкреНрд░рдгрд╛рд▓реАрдорд╛ рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдиреБрдкрд░реНрдЫ (рдпрд╕рдкрдЫрд┐ VCS рднрдирд┐рдиреНрдЫ)
  2. рдбрдореНрдк рдмрдЪрдд рдЧрд░реЗрдкрдЫрд┐ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛рдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдХрд╕рд░реА рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрдиреЗ
  3. рджреНрд╡рдиреНрджреНрд╡ рд░ рд╡рд┐рд╢рд╛рд▓ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдлрд╛рдЗрд▓рд╣рд░реВ рдмрд┐рдирд╛ рдЕрдиреНрдп рд╡рд╛рддрд╛рд╡рд░рдгрд╣рд░реВрдорд╛ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛рдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдХрд╕рд░реА рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░реНрдиреЗ
  4. рдзреЗрд░реИ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрд╕рдорд╛рдирд╛рдиреНрддрд░ рдХрд╛рд░реНрдпрдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╕рд░реА рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрдиреЗ
  5. рдХрд╕рд░реА рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдкрдорд╛ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛рдорд╛ рдердк рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдгрдорд╛ рддреИрдирд╛рдд рдЧрд░реНрдиреЗ

    рд╕реНрдХрд┐рдордХрд┐рдкрд░ рднрд╛рд╖рд╛рдорд╛ рд▓реЗрдЦрд┐рдПрдХрд╛ рднрдгреНрдбрд╛рд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рдбрд┐рдЬрд╛рдЗрди рдЧрд░рд┐рдПрдХреЛ PL/pgSQLред рдЕрдиреНрдп рднрд╛рд╖рд╛рд╣рд░реВрд╕рдБрдЧ рдкрд░реАрдХреНрд╖рдг рдЧрд░рд┐рдПрдХреЛ рдЫреИрди, рддреНрдпрд╕реИрд▓реЗ рдкреНрд░рдпреЛрдЧ рддреНрдпрддрд┐ рдкреНрд░рднрд╛рд╡рдХрд╛рд░реА рдирд╣реБрди рд╕рдХреНрдЫ рд╡рд╛ рд╕рдореНрднрд╡ рдирд╣реБрди рд╕рдХреНрдЫред

VCS рдорд╛ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдбрдореНрдк рдХрд╕рд░реА рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдиреЗ

рдкреБрд╕реНрддрдХрд╛рд▓рдп рдпреЛрдЬрдирд╛-рдХрд┐рдкрд░ рдПрдХ рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫ saveDump, рдЬрд╕рд▓реЗ рдбрд╛рдЯрд╛рдмреЗрд╕рдмрд╛рдЯ рд╕рдмреИ рд╡рд╕реНрддреБрд╣рд░реВрдХреЛ рд╕рдВрд░рдЪрдирд╛рд▓рд╛рдИ рдЫреБрдЯреНрдЯреИ рдкрд╛рда рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рдмрдЪрдд рдЧрд░реНрдЫред рдЖрдЙрдЯрдкреБрдЯ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛ рднрдПрдХреЛ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рд╣реЛ, рд╕рдореВрд╣рдмрджреНрдз рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реБрдиреНрдЫ рдЬреБрди рд╕рдЬрд┐рд▓реИ VCS рдорд╛ рдердкреНрди рд╕рдХрд┐рдиреНрдЫред

рдзреЗрд░реИ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдбрд╛рдЯрд╛рдмреЗрд╕рдмрд╛рдЯ рд╡рд╕реНрддреБрд╣рд░реВрд▓рд╛рдИ рдлрд╛рдЗрд▓рд╣рд░реВрдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рд╣реЗрд░реМрдВ:

рд╡рд╕реНрддреБ рдкреНрд░рдХрд╛рд░
рдпреЛрдЬрдирд╛
рд╢реАрд░реНрд╖рдХ
рдлрд╛рдЗрд▓рдорд╛ рд╕рд╛рдкреЗрдХреНрд╖ рдмрд╛рдЯреЛ

рддрд╛рд▓рд┐рдХрд╛
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ
рдЦрд╛рддрд╛
./public/tables/accounts.txt

рднрдгреНрдбрд╛рд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛
рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ
рдкреНрд░рдорд╛рдг (рд╣реНрдпрд╛рд╕ рдмрд┐рдЬрд┐рдиреНрдЯ)
./public/functions/auth(int8).sql

рдкрд░рд┐рдЪрдп
рдмреБрдХрд┐рдВрдЧ
рд╢реБрд▓реНрдХрд╣рд░реВ
./booking/views/tariffs.txt

рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд╕реНрддреБрдХреЛ рд╕рдВрд░рдЪрдирд╛рдХреЛ рдкрд╛рдареНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реБрдиреНред рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рднрдгреНрдбрд╛рд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐, рдлрд╛рдЗрд▓рдХреЛ рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ рдмреНрд▓рдХрдмрд╛рдЯ рд╕реБрд░реБ рд╣реБрдиреЗ рднрдгреНрдбрд╛рд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рдХреЛ рдкреВрд░реНрдг рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реБрдиреЗрдЫред CREATE OR REPLACE FUNCTION.

рдорд╛рдерд┐рдХреЛ рддрд╛рд▓рд┐рдХрд╛рдмрд╛рдЯ рджреЗрдЦреНрди рд╕рдХрд┐рдиреНрдЫ, рдлрд╛рдЗрд▓рдХреЛ рдорд╛рд░реНрдЧрд▓реЗ рд╡рд╕реНрддреБрдХреЛ рдкреНрд░рдХрд╛рд░, рд╕реНрдХреАрдорд╛ рд░ рдирд╛рдордХреЛ рдмрд╛рд░реЗрдорд╛ рдЬрд╛рдирдХрд╛рд░реА рднрдгреНрдбрд╛рд░рдг рдЧрд░реНрдЫред рдпреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгрд▓реЗ рдбрд╛рдЯрд╛рдмреЗрд╕рдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВрдХреЛ рдбрдореНрдк рд░ рдХреЛрдб рд╕рдореАрдХреНрд╖рд╛ рдорд╛рд░реНрдлрдд рдиреЗрднрд┐рдЧреЗрдЯ рдЧрд░реНрди рд╕рдЬрд┐рд▓реЛ рдмрдирд╛рдЙрдБрдЫред

рд╡рд┐рд╕реНрддрд╛рд░ .sql рднрдгреНрдбрд╛рд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рднрдПрдХрд╛ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐, рдпреЛ рдЪрдпрди рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ рддрд╛рдХрд┐ IDE рд▓реЗ рдлрд╛рдЗрд▓ рдЦреЛрд▓реНрджрд╛ рдбрд╛рдЯрд╛рдмреЗрд╕рд╕рдБрдЧ рдЕрдиреНрддрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдЙрдкрдХрд░рдгрд╣рд░реВ рдЙрдкрд▓рдмреНрдз рдЧрд░рд╛рдЙрдБрдЫред

рдбрдореНрдк рдмрдЪрдд рдЧрд░реЗрдкрдЫрд┐ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛рдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдХрд╕рд░реА рдЯреНрд░реНрдпрд╛рдХ рдЧрд░реНрдиреЗ

VCS рдорд╛ рд╣рд╛рд▓рдХреЛ рдбрд╛рдЯрд╛рдмреЗрд╕ рдврд╛рдБрдЪрд╛рдХреЛ рдбрдореНрдк рдмрдЪрдд рдЧрд░реЗрд░, рд╣рд╛рдореАрд▓реЗ рдбрдореНрдк рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реЗрдкрдЫрд┐ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛рдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ рдХрд┐ рдЫреИрди рднрдиреЗрд░ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреЗ рдореМрдХрд╛ рдкрд╛рдЙрдБрдЫреМрдВред рдкреБрд╕реНрддрдХрд╛рд▓рдпрдорд╛ рдпреЛрдЬрдирд╛-рдХрд┐рдкрд░ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕рдВрд░рдЪрдирд╛рдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди, рдПрдХ рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рджрд╛рди рдЧрд░рд┐рдПрдХреЛ рдЫ 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ред рдпрд╕рд▓реЗ рддрдкрд╛рдЗрдБрд▓рд╛рдИ рд╕рдВрд░рдЪрдирд╛рдорд╛ рд╕рдмреИ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЧрд░реНрди рд░ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдЕрд╡рд╕реНрдерд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ рддрд╛рдХрд┐ рднрдгреНрдбрд╛рд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рд╣рд░реВрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдкрдЫрд┐ рд╕рдорд╕реНрдпрд╛ рдмрд┐рдирд╛ рд╕реНрдерд╛рдирд╛рдиреНрддрд░рдг рдЧрд░рд┐рдиреНрдЫред

рдорд╛рдЗрдЧреНрд░реЗрд╕рдирд╣рд░реВрд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрдиреЗ рдмрд╛рд░реЗ рдердк рд╡рд┐рд╡рд░рдгрд╣рд░реВ рдирд┐рдореНрди рдЦрдгреНрдбрд╣рд░реВрдорд╛ рд╡рд░реНрдгрди рдЧрд░рд┐рдиреЗрдЫред

рдзреЗрд░реИ рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рдпреЛрдЬрдирд╛рдорд╛ тАЛтАЛрд╕рдорд╛рдирд╛рдиреНрддрд░ рдХрд╛рд░реНрдпрдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╕рд░реА рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдЧрд░реНрдиреЗ

рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдкреВрд░реНрдг рдкреНрд░рд╛рд░рдореНрднрд┐рдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдЬреБрди рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд▓реЗ рдЖрдлреНрдиреЛ рдХрд╛рдордХреЛ рдореЗрд╕рд┐рдирдорд╛ рд╕реБрд░реВ рдЧрд░реНрдиреЗрдЫ, рд╕реНрдерд╛рдиреАрдп рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рд╕рдВрд░рдЪрдирд╛рд▓рд╛рдИ VCS рдорд╛ рдмрдЪрдд рдЧрд░рд┐рдПрдХреЛ рдбрдореНрдк рдЕрдиреБрд╕рд╛рд░ рд▓реНрдпрд╛рдПрд░ред рд╕реНрдерд╛рдиреАрдп рдбрд╛рдЯрд╛рдмреЗрд╕рдХреЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХрд░рдгрд▓рд╛рдИ 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 рд╕реНрдерд╛рдиреАрдп рдбрд╛рдЯрд╛рдмреЗрд╕ рд░ рд╕реБрд░рдХреНрд╖рд┐рдд рдбрдореНрдк рдмреАрдЪ рдХреБрдиреИ рднрд┐рдиреНрдирддрд╛ рджреЗрдЦрд╛рдЙрдиреЗ рдЫреИрди

рдорд╛рдерд┐ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ gitflow рд╕рд┐рджреНрдзрд╛рдиреНрддрд╣рд░реВрд╕рдБрдЧ рдЙрдкрдпреБрдХреНрдд рдЫред VCS рдорд╛ рдкреНрд░рддреНрдпреЗрдХ рд╢рд╛рдЦрд╛рд▓реЗ рдбрдореНрдкрдХреЛ рдЖрдлреНрдиреИ рд╕рдВрд╕реНрдХрд░рдг рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рд░ рд╢рд╛рдЦрд╛рд╣рд░реВ рдорд░реНрдЬ рдЧрд░реНрджрд╛, рдбрдореНрдкрд╣рд░реВ рдорд░реНрдЬ рд╣реБрдиреЗрдЫрдиреНред рдзреЗрд░реИрдЬрд╕реЛ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдорд░реНрдЬ рдкрдЫрд┐ рдХреБрдиреИ рдердк рдХрд╛рд░реНрдпрд╣рд░реВ рд▓рд┐рдиреБ рдкрд░реНрджреИрди, рддрд░ рдпрджрд┐ рдлрд░рдХ рд╢рд╛рдЦрд╛рд╣рд░реВрдорд╛ рдкрд░рд┐рд╡рд░реНрддрдирд╣рд░реВ рдЧрд░рд┐рдпреЛ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдПрдЙрдЯреИ рддрд╛рд▓рд┐рдХрд╛рдорд╛, рджреНрд╡рдиреНрджреНрд╡ рдЙрддреНрдкрдиреНрди рд╣реБрди рд╕рдХреНрдЫред

рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рджреНрд╡рдиреНрджреНрд╡ рдЕрд╡рд╕реНрдерд╛рд▓рд╛рдИ рд╡рд┐рдЪрд╛рд░ рдЧрд░реМрдВ: рддреНрдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рд╢рд╛рдЦрд╛ рдЫ рд╡рд┐рдХрд╛рд╕, рдЬрд╕рдмрд╛рдЯ рджреБрдИрд╡рдЯрд╛ рд╢рд╛рдЦрд╛рд╣рд░реВ рдЫрдиреН: feature1 ╨╕ feature2рдЬрд╕рдорд╛ рдХреБрдиреИ рд╡рд┐рд╡рд╛рдж рдЫреИрди рд╡рд┐рдХрд╛рд╕рддрд░ рдПрдХрдЕрд░реНрдХрд╛рд╕рдБрдЧ рд╡рд┐рд╡рд╛рдж рдЫред рдХрд╛рд░реНрдп рднрдиреЗрдХреЛ рджреБрдмреИ рд╢рд╛рдЦрд╛рд╣рд░реВрд▓рд╛рдИ рдорд░реНрдЬ рдЧрд░реНрдиреЗ рд╣реЛ рд╡рд┐рдХрд╛рд╕ред рдпрд╕ рдЕрд╡рд╕реНрдерд╛рдорд╛, рдпреЛ рдкрд╣рд┐рд▓реЗ рд╢рд╛рдЦрд╛ рдордзреНрдпреЗ рдПрдХ рдорд░реНрдЬ рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдПрдХреЛ рдЫ рд╡рд┐рдХрд╛рд╕рд░ рддреНрдпрд╕рдкрдЫрд┐ рдорд░реНрдЬ рд╡рд┐рдХрд╛рд╕ рдмрд╛рдБрдХреА рд╢рд╛рдЦрд╛рдорд╛, рдмрд╛рдБрдХреА рд╢рд╛рдЦрд╛рдорд╛ рд╡рд┐рд╡рд╛рджрд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрджреИ, рд░ рддреНрдпрд╕рдкрдЫрд┐ рдЕрдиреНрддрд┐рдо рд╢рд╛рдЦрд╛рд▓рд╛рдИ рдорд░реНрдЬ рдЧрд░реНрджреИ рд╡рд┐рдХрд╛рд╕ред рджреНрд╡рдиреНрджреНрд╡ рд╕рдорд╛рдзрд╛рди рдЪрд░рдгрдХреЛ рд╕рдордпрдорд╛, рддрдкрд╛рдИрдВрд▓реЗ рдЕрдиреНрддрд┐рдо рд╢рд╛рдЦрд╛рдорд╛ рдорд╛рдЗрдЧреНрд░реЗрд╕рди рдлрд╛рдЗрд▓ рдлрд┐рдХреНрд╕ рдЧрд░реНрдиреБрдкрд░реНрдиреЗ рд╣реБрди рд╕рдХреНрдЫ рддрд╛рдХрд┐ рдпрд╕рд▓реЗ рдЕрдиреНрддрд┐рдо рдбрдореНрдкрд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫ, рдЬрд╕рдорд╛ рдорд░реНрдЬрд╣рд░реВрдХреЛ рдкрд░рд┐рдгрд╛рдорд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рд╣реБрдиреНрдЫрдиреНред

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

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

рдкрдЫрд┐ DDL PostgreSQL рдорд╛ рдЫ рд▓реЗрдирджреЗрди, рдпреЛ рдирд┐рдореНрди рддреИрдирд╛рддреА рдЖрджреЗрд╢ рдкрд╛рд▓рди рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░рд┐рдПрдХреЛ рдЫ, рддрд╛рдХрд┐, рдПрдХ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рддреНрд░реБрдЯрд┐ рдХреЛ рдШрдЯрдирд╛ рдорд╛, рддрдкрд╛рдИрдВ "рдкреАрдбрд╛ рдмрд┐рдирд╛" рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред ROLLBACK:

  1. рд▓реЗрдирджреЗрди рд╕реБрд░реБ рдЧрд░реНрдиреБрд╣реЛрд╕реН
  2. рд▓реЗрдирджреЗрдирдорд╛ рд╕рдмреИ рдорд╛рдЗрдЧреНрд░реЗрд╕рдирд╣рд░реВ рдЧрд░реНрдиреБрд╣реЛрд╕реН
  3. рдПрдЙрдЯреИ рд▓реЗрдирджреЗрди рдорд╛, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди deployDump
  4. рд▓реЗрдирджреЗрди рдкреВрд░рд╛ рдирдЧрд░реА, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН verifyDumpред рдпрджрд┐ рдХреБрдиреИ рддреНрд░реБрдЯрд┐рд╣рд░реВ рдЫреИрдирдиреН рднрдиреЗ, рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН COMMITред рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рддреНрд░реБрдЯрд┐рд╣рд░реВ рдЫрдиреН рднрдиреЗ, рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН ROLLBACK

рдпреА рдЪрд░рдгрд╣рд░реВ рд╕рдЬрд┐рд▓реИрд╕рдБрдЧ рд╢реВрдиреНрдп-рдбрд╛рдЙрдирдЯрд╛рдЗрдо рд╕рд╣рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╕рди рдбрд┐рдкреНрд▓реЛрдЗрдореЗрдиреНрдЯрдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдгрд╣рд░реВрдорд╛ рдПрдХреАрдХреГрдд рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

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

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

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди