SchemaKeeper เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เชฌเชฟเชเชจเซ‡เชธ เชฒเซ‹เชœเซ€เช•

เช† เชฒเซ‡เช–เชจเซ‹ เชนเซ‡เชคเซ เชชเซเชธเซเชคเช•เชพเชฒเชฏเชจเชพ เช‰เชฆเชพเชนเชฐเชฃเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพเชจเซ‹ เช›เซ‡ เชธเซเช•เซ€เชฎเชพ-เช•เซ€เชชเชฐ เชŸเซ‚เชฒเซเชธ เชฌเชคเชพเชตเซ‹ เช•เซ‡ เชœเซ‡ PostgreSQL DBMS เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ PHP เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธเชฎเชพเช‚ เชกเซ‡เชŸเชพเชฌเซ‡เช เชตเชฟเช•เชธเชพเชตเชตเชพเชจเซ€ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเชจเซ‡ เชจเซ‹เช‚เชงเชชเชพเชคเซเชฐ เชฐเซ€เชคเซ‡ เชธเชฐเชณ เชฌเชจเชพเชตเซ€ เชถเช•เซ‡.

เช† เชฒเซ‡เช–เชจเซ€ เชฎเชพเชนเชฟเชคเซ€, เชธเซŒ เชชเซเชฐเชฅเชฎ, เชเชตเชพ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชฎเชพเชŸเซ‡ เช‰เชชเชฏเซ‹เช—เซ€ เชฅเชถเซ‡ เชœเซ‡เช“ PostgreSQL เช•เซเชทเชฎเชคเชพเช“เชจเซ‹ เชฎเชนเชคเซเชคเชฎ เช‰เชชเชฏเซ‹เช— เช•เชฐเชตเชพ เชฎเชพเช—เซ‡ เช›เซ‡, เชชเชฐเช‚เชคเซ เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชฎเชพเช‚ เช†เชตเซ‡เชฒเชพ เชตเซเชฏเชตเชธเชพเชฏเชจเชพ เชคเชฐเซเช•เชจเซ‡ เชœเชพเชณเชตเชตเชพเชฎเชพเช‚ เชธเชฎเชธเซเชฏเชพเช“เชจเซ‹ เชธเชพเชฎเชจเซ‹ เช•เชฐเซ€ เชฐเชนเซเชฏเชพ เช›เซ‡.

เช† เชฒเซ‡เช– เชกเซ‡เชŸเชพเชฌเซ‡เชเชฎเชพเช‚ เชฌเชฟเชเชจเซ‡เชธ เชฒเซ‹เชœเชฟเช• เชธเซเชŸเซ‹เชฐ เช•เชฐเชตเชพเชจเชพ เชซเชพเชฏเชฆเชพ เช…เชฅเชตเชพ เช—เซ‡เชฐเชซเชพเชฏเชฆเชพเชจเซเช‚ เชตเชฐเซเชฃเชจ เช•เชฐเชถเซ‡ เชจเชนเซ€เช‚. เชเชตเซเช‚ เชฎเชพเชจเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เช•เซ‡ เชชเชธเช‚เชฆเช—เซ€ เชตเชพเชšเช• เชฆเซเชตเชพเชฐเชพ เชชเชนเซ‡เชฒเซ‡เชฅเซ€ เชœ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡.

เชจเซ€เชšเซ‡เชจเชพ เชชเซเชฐเชถเซเชจเซ‹ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡:

  1. เชตเชฐเซเชเชจ เช•เช‚เชŸเซเชฐเซ‹เชฒ เชธเชฟเชธเซเชŸเชฎเชฎเชพเช‚ เชกเซ‡เชŸเชพเชฌเซ‡เช เชธเซเชŸเซเชฐเช•เซเชšเชฐ เชกเชฎเซเชช เช•เชฏเชพ เชธเซเชตเชฐเซ‚เชชเชฎเชพเช‚ เชธเช‚เช—เซเชฐเชนเชฟเชค เชฅเชตเซ‹ เชœเซ‹เชˆเช (เชคเซเชฏเชพเชฐเชฌเชพเชฆ VCS เชคเชฐเซ€เช•เซ‡ เช“เชณเช–เชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡)
  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 เช†เชชเชฎเซ‡เชณเซ‡ เชกเซ‡เชŸเชพเชฌเซ‡เช เชธเชพเชฅเซ‡ เช•เซเชฐเชฟเชฏเชพเชชเซเชฐเชคเชฟเช•เซเชฐเชฟเชฏเชพ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡ เชธเชพเชงเชจเซ‹ เชชเซ‚เชฐเชพ เชชเชพเชกเซ‡.

เชกเชฎเซเชช เชธเซ‡เชต เช•เชฐเซเชฏเชพ เชชเช›เซ€ เชกเซ‡เชŸเชพเชฌเซ‡เช เชธเซเชŸเซเชฐเช•เซเชšเชฐเชฎเชพเช‚ เชฅเชคเชพ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชŸเซเชฐเซ…เช• เช•เชฐเชตเชพ

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 เชธเซเชฅเชพเชจเชฟเช• เชกเซ‡เชŸเชพเชฌเซ‡เช เช…เชจเซ‡ เชธเชพเชšเชตเซ‡เชฒ เชกเชฎเซเชช เชตเชšเซเชšเซ‡ เช•เซ‹เชˆ เชคเชซเชพเชตเชค เชฌเชคเชพเชตเชถเซ‡ เชจเชนเซ€เช‚

เช‰เชชเชฐ เชตเชฐเซเชฃเชตเซ‡เชฒ เชชเซเชฐเช•เซเชฐเชฟเชฏเชพ เช—เชฟเชŸเชซเซเชฒเซ‹ เชธเชฟเชฆเซเชงเชพเช‚เชคเซ‹ เชธเชพเชฅเซ‡ เชธเซเชธเช‚เช—เชค เช›เซ‡. VCS เชฎเชพเช‚ เชฆเชฐเซ‡เช• เชถเชพเช–เชพเชฎเชพเช‚ เชกเชฎเซเชชเชจเซเช‚ เชชเซ‹เชคเชพเชจเซเช‚ เชธเช‚เชธเซเช•เชฐเชฃ เชนเชถเซ‡, เช…เชจเซ‡ เชœเซเชฏเชพเชฐเซ‡ เชถเชพเช–เชพเช“ เชฎเชฐเซเชœ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡, เชคเซเชฏเชพเชฐเซ‡ เชกเชฎเซเชชเซเชธ เชฎเชฐเซเชœ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเชถเซ‡. เชฎเซ‹เชŸเชพ เชญเชพเช—เชจเชพ เช•เชฟเชธเซเชธเชพเช“เชฎเชพเช‚, เชฎเชฐเซเชœ เช•เชฐเซเชฏเชพ เชชเช›เซ€ เช•เซ‹เชˆ เชตเชงเชพเชฐเชพเชจเชพ เชชเช—เชฒเชพเช‚ เชฒเซ‡เชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เชจเชฅเซ€, เชชเชฐเช‚เชคเซ เชœเซ‹ เชตเชฟเชตเชฟเชง เชถเชพเช–เชพเช“ เชชเชฐ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซเชฏเชพ เชนเซ‹เชฏ, เช‰เชฆเชพเชนเชฐเชฃ เชคเชฐเซ€เช•เซ‡ เชธเชฎเชพเชจ เชŸเซ‡เชฌเชฒ เชชเชฐ, เชคเซ‹ เชธเช‚เช˜เชฐเซเชท เชŠเชญเซ‹ เชฅเชˆ เชถเช•เซ‡ เช›เซ‡.

เชšเชพเชฒเซ‹ เช‰เชฆเชพเชนเชฐเชฃเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเช‚เช˜เชฐเซเชทเชจเซ€ เชชเชฐเชฟเชธเซเชฅเชฟเชคเชฟเชจเซ‡ เชงเซเชฏเชพเชจเชฎเชพเช‚ เชฒเชˆเช: เชคเซเชฏเชพเช‚ เชเช• เชถเชพเช–เชพ เช›เซ‡ เชตเชฟเช•เชพเชธ, เชœเซ‡เชฎเชพเช‚เชฅเซ€ เชฌเซ‡ เชถเชพเช–เชพเช“ เชถเชพเช–เชพ: เชฒเช•เซเชทเชฃ 1 ะธ เชฒเช•เซเชทเชฃ 2, เชœเซ‡เชจเซ€ เชธเชพเชฅเซ‡ เช•เซ‹เชˆ เชคเช•เชฐเชพเชฐ เชจเชฅเซ€ เชตเชฟเช•เชพเชธ, เชชเชฐเช‚เชคเซ เชเช•เชฌเซ€เชœเชพ เชธเชพเชฅเซ‡ เชคเช•เชฐเชพเชฐ เช›เซ‡. เช•เชพเชฐเซเชฏ เชฌเช‚เชจเซ‡ เชถเชพเช–เชพเช“เชจเซ‡ เชฎเชฐเซเชœ เช•เชฐเชตเชพเชจเซเช‚ เช›เซ‡ เชตเชฟเช•เชพเชธ. เช† เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชชเซเชฐเชฅเชฎ เชถเชพเช–เชพเช“เชฎเชพเช‚เชฅเซ€ เชเช•เชจเซ‡ เชฎเชฐเซเชœ เช•เชฐเชตเชพเชจเซ€ เชญเชฒเชพเชฎเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡ เชตเชฟเช•เชพเชธเช…เชจเซ‡ เชชเช›เซ€ เชฎเชฐเซเชœ เช•เชฐเซ‹ เชตเชฟเช•เชพเชธ เชฌเชพเช•เซ€เชจเซ€ เชถเชพเช–เชพเชฎเชพเช‚, เชฌเชพเช•เซ€เชจเซ€ เชถเชพเช–เชพเชฎเชพเช‚ เชคเช•เชฐเชพเชฐ เช‰เช•เซ‡เชฒเชตเชพ, เช…เชจเซ‡ เชชเช›เซ€ เช›เซ‡เชฒเซเชฒเซ€ เชถเชพเช–เชพเชจเซ‡ เชคเซ‡เชฎเชพเช‚ เชฎเชฐเซเชœ เช•เชฐเชตเซ€ เชตเชฟเช•เชพเชธ. เชธเช‚เช˜เชฐเซเชทเชจเชพ เชจเชฟเชฐเชพเช•เชฐเชฃเชจเชพ เชคเชฌเช•เซเช•เชพ เชฆเชฐเชฎเชฟเชฏเชพเชจ, เชคเชฎเชพเชฐเซ‡ เช›เซ‡เชฒเซเชฒเซ€ เชถเชพเช–เชพเชฎเชพเช‚ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฃ เชซเชพเช‡เชฒเชจเซ‡ เช เซ€เช• เช•เชฐเชตเซ€ เชชเชกเซ€ เชถเช•เซ‡ เช›เซ‡ เชœเซ‡เชฅเซ€ เช•เชฐเซ€เชจเซ‡ เชคเซ‡ เช…เช‚เชคเชฟเชฎ เชกเชฎเซเชช เชธเชพเชฅเซ‡ เชฎเซ‡เชณ เช–เชพเชฏ, เชœเซ‡เชฎเชพเช‚ เชฎเชฐเซเชœเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ‹เชจเซ‹ เชธเชฎเชพเชตเซ‡เชถ เชฅเชพเชฏ เช›เซ‡.

เช‰เชคเซเชชเชพเชฆเชจ เชชเชฐเซเชฏเชพเชตเชฐเชฃเชฎเชพเช‚ เชกเซ‡เชŸเชพเชฌเซ‡เช เชธเซเชŸเซเชฐเช•เซเชšเชฐเชฎเชพเช‚ เชตเชงเซ เชซเซ‡เชฐเชซเชพเชฐเซ‹เชจเซ‡ เชธเซเชฐเช•เซเชทเชฟเชค เชฐเซ€เชคเซ‡ เช•เซ‡เชตเซ€ เชฐเซ€เชคเซ‡ เชœเชฎเชพเชตเชตเซเช‚

VCS เชฎเชพเช‚ เชตเชฐเซเชคเชฎเชพเชจ เชกเซ‡เชŸเชพเชฌเซ‡เช เชฎเชพเชณเช–เชพเชจเชพ เชกเชฎเซเชชเชจเซ€ เชนเชพเชœเชฐเซ€ เชฎเชพเชŸเซ‡ เช†เชญเชพเชฐ, เชœเชฐเซ‚เชฐเซ€ เชฎเชพเชณเช–เชพ เชธเชพเชฅเซ‡ เชšเซ‹เช•เซเช•เชธ เชชเชพเชฒเชจ เชฎเชพเชŸเซ‡ เช‰เชคเซเชชเชพเชฆเชจ เชกเซ‡เชŸเชพเชฌเซ‡เช เชคเชชเชพเชธเชตเซเช‚ เชถเช•เซเชฏ เชฌเชจเซ‡ เช›เซ‡. เช† เชธเซเชจเชฟเชถเซเชšเชฟเชค เช•เชฐเซ‡ เช›เซ‡ เช•เซ‡ เชตเชฟเช•เชพเชธเช•เชฐเซเชคเชพเช“ เชฆเซเชตเชพเชฐเชพ เช‡เชšเซเช›เชฟเชค เชคเชฎเชพเชฎ เชซเซ‡เชฐเชซเชพเชฐเซ‹ เชธเชซเชณเชคเชพเชชเซ‚เชฐเซเชตเช• เช‰เชคเซเชชเชพเชฆเชจ เช†เชงเชพเชฐ เชชเชฐ เชธเซเชฅเชพเชจเชพเช‚เชคเชฐเชฟเชค เชฅเชฏเชพ เชนเชคเชพ.

เชคเซเชฏเชพเชฐเชฅเซ€ เชกเซ€เชกเซ€เชเชฒ PostgreSQL เชฎเชพเช‚ เช›เซ‡ เชตเซเชฏเชตเชนเชพเชฐเชฟเช•, เชจเซ€เชšเซ‡เชจเชพ เชกเชฟเชชเซเชฒเซ‹เชฏเชฎเซ‡เชจเซเชŸ เช“เชฐเซเชกเชฐเชจเซเช‚ เชชเชพเชฒเชจ เช•เชฐเชตเชพเชจเซ€ เชญเชฒเชพเชฎเชฃ เช•เชฐเชตเชพเชฎเชพเช‚ เช†เชตเซ‡ เช›เซ‡, เชœเซ‡เชฅเซ€ เช•เชฐเซ€เชจเซ‡, เช…เชฃเชงเชพเชฐเซ€ เชญเซ‚เชฒเชจเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เชคเชฎเซ‡ "เชชเซ€เชกเชพ เชตเชฟเชจเชพ" เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเซ€ เชถเช•เซ‹ ROLLBACK:

  1. เชตเซเชฏเชตเชนเชพเชฐ เชถเชฐเซ‚ เช•เชฐเซ‹
  2. เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚ เชคเชฎเชพเชฎ เชธเซเชฅเชณเชพเช‚เชคเชฐ เช•เชฐเซ‹
  3. เชธเชฎเชพเชจ เชตเซเชฏเชตเชนเชพเชฐเชฎเชพเช‚, เชเช•เซเชเชฟเช•เซเชฏเซเชŸ เช•เชฐเซ‹ deployDump
  4. เชตเซเชฏเชตเชนเชพเชฐ เชชเซ‚เชฐเซเชฃ เช•เชฐเซเชฏเชพ เชตเชฟเชจเชพ, เชšเชฒเชพเชตเซ‹ verifyDump. เชœเซ‹ เชคเซเชฏเชพเช‚ เช•เซ‹เชˆ เชญเซ‚เชฒเซ‹ เชจเชฅเซ€, เชคเซ‹ เชšเชฒเชพเชตเซ‹ COMMIT. เชœเซ‹ เชคเซเชฏเชพเช‚ เชญเซ‚เชฒเซ‹ เชนเซ‹เชฏ, เชคเซ‹ เชšเชฒเชพเชตเซ‹ ROLLBACK

เชถเซ‚เชจเซเชฏ-เชกเชพเช‰เชจเชŸเชพเช‡เชฎ เชธเชนเชฟเชค, เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชœเชฎเชพเชตเชŸ เชฎเชพเชŸเซ‡เชจเชพ เชนเชพเชฒเชจเชพ เช…เชญเชฟเช—เชฎเซ‹เชฎเชพเช‚ เช† เชชเช—เชฒเชพเช‚ เชธเชฐเชณเชคเชพเชฅเซ€ เชธเช‚เช•เชฒเชฟเชค เช•เชฐเซ€ เชถเช•เชพเชฏ เช›เซ‡.

เชจเชฟเชทเซเช•เชฐเซเชท

เช‰เชชเชฐเซ‹เช•เซเชค เชตเชฐเซเชฃเชตเซ‡เชฒ เชชเชฆเซเชงเชคเชฟเช“เชจเซ‹ เช†เชญเชพเชฐ, เชฎเซเช–เซเชฏ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เช•เซ‹เชกเชฎเชพเช‚ เชคเชฎเชพเชฎ เชตเซเชฏเชตเชธเชพเชฏเชฟเช• เชคเชฐเซเช•เชจเซ‡ เช…เชฎเชฒเชฎเชพเช‚ เชฎเซ‚เช•เชตเชพเชจเซ€ เชคเซเชฒเชจเชพเชฎเชพเช‚ เชชเซเชฐเชฎเชพเชฃเชฎเชพเช‚ เช“เช›เซ€ เชตเชฟเช•เชพเชธ เชธเซเชตเชฟเชงเชพเชจเซ‡ เชฌเชฒเชฟเชฆเชพเชจ เช†เชชเชคเซ€ เชตเช–เชคเซ‡, "PHP + PostgreSQL" เชชเซเชฐเซ‹เชœเซ‡เช•เซเชŸเซเชธเชฎเชพเช‚เชฅเซ€ เชฎเชนเชคเซเชคเชฎ เชชเซเชฐเชฆเชฐเซเชถเชจเชจเซ‡ เชธเซเช•เซเชตเชฟเช เช•เชฐเชตเซเช‚ เชถเช•เซเชฏ เช›เซ‡. เชตเชงเซเชฎเชพเช‚, เชกเซ‡เชŸเชพ เชชเซเชฐเซ‹เชธเซ‡เชธเชฟเช‚เช—เชฎเชพเช‚ PL/pgSQL เช˜เชฃเซ€เชตเชพเชฐ เชตเชงเซ เชชเชพเชฐเชฆเชฐเซเชถเช• เชฆเซ‡เช–เชพเชฏ เช›เซ‡ เช…เชจเซ‡ PHP เชฎเชพเช‚ เชฒเช–เซ‡เชฒเซ€ เชธเชฎเชพเชจ เช•เชพเชฐเซเชฏเช•เซเชทเชฎเชคเชพ เช•เชฐเชคเชพเช‚ เช“เช›เชพ เช•เซ‹เชกเชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเซ‡ เช›เซ‡.

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹