เป€เบซเบ”เบœเบปเบ™เบ—เบฒเบ‡เบ—เบธเบฅเบฐเบเบดเบ”เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰ SchemaKeeper

เบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ‚เบญเบ‡เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” schema-keeper เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เปƒเบซเป‰เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบžเบฒเบเปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™ PHP เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เบซเบผเบฒเบเป‚เบ”เบเปƒเบŠเป‰ PostgreSQL DBMS.

เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰, เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ•เปเปˆเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ PostgreSQL, เปเบ•เปˆเบ›เบฐเป€เบŠเบตเบ™เบเบฑเบšเบšเบฑเบ™เบซเบฒเบเบฒเบ™เบฎเบฑเบเบชเบฒเป€เบซเบ”เบœเบปเบ™เบ—เบฒเบ‡เบ—เบธเบฅเบฐเบเบดเบ”เบ—เบตเปˆเบงเบฒเบ‡เป„เบงเป‰เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™.

เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เบˆเบฐเบšเปเปˆเบญเบฐเบ—เบดเบšเบฒเบเบ‚เปเป‰เบ”เบตเบซเบผเบทเบ‚เปเป‰เป€เบชเบเบ‚เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป€เบซเบ”เบœเบปเบ™เบ—เบฒเบ‡เบ—เบธเบฅเบฐเบเบดเบ”เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™. เบกเบฑเบ™เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบ—เบฒเบ‡เป€เบฅเบทเบญเบเป„เบ”เป‰เบ–เบทเบเป€เบฎเบฑเบ”เปเบฅเป‰เบงเป‚เบ”เบเบœเบนเป‰เบญเปˆเบฒเบ™.

เบ„เบณเบ–เบฒเบกเบ•เปเปˆเป„เบ›เบ™เบตเป‰เบˆเบฐเบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ:

  1. เบเบฒเบ™เบ–เบดเป‰เบกเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ„เบงเบ™เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เบฎเบนเบšเปเบšเบšเปƒเบ”เปƒเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบชเบฐเบšเบฑเบš (เบ•เปเปˆเป„เบ›เบ™เบตเป‰เป€เบญเบตเป‰เบ™เบงเปˆเบฒ VCS)
  2. เบงเบดเบ—เบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ
  3. เบงเบดเบ—เบตเบเบฒเบ™เป‚เบญเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป„เบ›เบชเบนเปˆเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบญเบทเปˆเบ™เป†เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เบฑเบ”เปเบเป‰เบ‡เปเบฅเบฐเป„เบŸเบฅเปŒเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบเบฑเบเปƒเบซเบเปˆ
  4. เบงเบดเบ—เบตเบเบฒเบ™เบˆเบฑเบ”เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบฐเบซเบ™เบฒเบ™เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เป‚เบ”เบเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡
  5. เบงเบดเบ—เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เบ›เบญเบ”เป„เบžเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป„เบ›เบชเบนเปˆเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบœเบฐเบฅเบดเบ”

    SchemaKeeper เบญเบญเบเปเบšเบšเบกเบฒเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเบ‚เบฝเบ™เป€เบ›เบฑเบ™เบžเบฒเบชเบฒ PL/pgSQL. เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฑเบšเบžเบฒเบชเบฒเบญเบทเปˆเบ™เป†เบšเปเปˆเป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบญเบฒเบ”เบˆเบฐเบšเปเปˆเบกเบตเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบซเบผเบทเบญเบฒเบ”เบˆเบฐเบšเปเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰.

เบงเบดเบ—เบตเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ dump เปƒเบ™ VCS

เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” schema-keeper เบชเบฐเบซเบ™เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆ saveDump, เป€เบŠเบดเปˆเบ‡เบšเบฑเบ™เบ—เบถเบเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฒเบเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป€เบ›เบฑเบ™เป„เบŸเบฅเปŒเบ‚เปเป‰เบ„เบงเบฒเบกเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. เบœเบปเบ™เบœเบฐเบฅเบดเบ”เปเบกเปˆเบ™เป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ—เบตเปˆเบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เปเบšเปˆเบ‡เบญเบญเบเป€เบ›เบฑเบ™เป„เบŸเบฅเปŒเบเบธเปˆเบกเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™ VCS เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ.

เบกเบฒเป€เบšเบดเปˆเบ‡เบเบฒเบ™เปเบ›เบ‡เบงเบฑเบ”เบ–เบธเบˆเบฒเบเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป€เบ›เบฑเบ™เป„เบŸเบฅเปŒเป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเบขเปˆเบฒเบ‡เบซเบผเบฒเบเบญเบฑเบ™:

เบ›เบฐเป€เบžเบ”เบงเบฑเบ”เบ–เบธ
เป‚เบ„เบ‡เบเบฒเบ™
Title
เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เป€เบžเบทเปˆเบญเบเบทเปˆเบ™

เบ•เบฒเบ•เบฐเบฅเบฒเบ‡
เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ
เบšเบฑเบ™เบŠเบต
./public/tables/accounts.txt

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ
เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ
auth(hash bigint)
./public/functions/auth(int8).sql

เบเบฒเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบต
เบˆเบญเบ‡
เบญเบฑเบ”เบ•เบฒเบžเบฒเบชเบต
./booking/views/tariffs.txt

เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เป„เบŸเบฅเปŒเปเบกเปˆเบ™เบเบฒเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเปเบ—เบ™เบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบชเบฐเป€เบžเบฒเบฐ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบชเปเบฒเบฅเบฑเบšเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ, เป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เป„เบŸเบฅเปŒเบˆเบฐเป€เบ›เบฑเบ™เบ„เปเบฒเบ™เบดเบเบฒเบกเบญเบฑเบ™เป€เบ•เบฑเบกเบ—เบตเปˆเบ‚เบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบ•เบฑเบ™. CREATE OR REPLACE FUNCTION.

เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป€เบซเบฑเบ™เป„เบ”เป‰เบˆเบฒเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เป„เบ›เบซเบฒเป„เบŸเบฅเปŒเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบ›เบฐเป€เบžเบ”, schema เปเบฅเบฐเบŠเบทเปˆเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธ. เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบ™เปเบฒเบ—เบฒเบ‡เบœเปˆเบฒเบ™ dump เปเบฅเบฐเบเบฒเบ™เบ—เบปเบšเบ—เบงเบ™เบ„เบทเบ™เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™.

เบ™เบฒเบกเบชเบฐเบเบธเบ™ .sql เบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ, เบกเบฑเบ™เบ–เบทเบเป€เบฅเบทเบญเบเป€เบžเบทเปˆเบญเปƒเบซเป‰ IDE เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบชเบฐเบซเบ™เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบปเบงเบžเบฑเบ™เบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป€เบกเบทเปˆเบญเป„เบŸเบฅเปŒเบ–เบทเบเป€เบ›เบตเบ”.

เบงเบดเบ—เบตเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ

เป‚เบ”เบเบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เปƒเบ™ VCS, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเป‚เบญเบเบฒเบ”เบ—เบตเปˆเบˆเบฐเบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบซเบผเบฑเบ‡เบˆเบฒเบ dump เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™. เปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ” schema-keeper เป€เบžเบทเปˆเบญเบเบงเบ”เบซเบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เบกเบตเบซเบ™เป‰เบฒเบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰ verifyDump, เป€เบŠเบดเปˆเบ‡เบชเบปเปˆเบ‡เบ„เบทเบ™เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เป‚เบ”เบเบšเปเปˆเบกเบตเบœเบปเบ™เบ‚เป‰เบฒเบ‡เบ„เบฝเบ‡.

เบงเบดเบ—เบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเปเบกเปˆเบ™เบเบฒเบ™เป‚เบ—เบซเบฒเบŸเบฑเบ‡เบŠเบฑเบ™เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡ saveDump, เบเบฒเบ™เบฅเบฐเบšเบธเป„เบ”เป€เบฅเบเบฐเบ—เปเบฅเบตเบ”เบฝเบงเบเบฑเบ™, เปเบฅเบฐเบเบงเบ”เป€เบšเบดเปˆเบ‡เปƒเบ™ VCS เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเบฑเบ”เบ–เบธเบ—เบฑเบ‡เปเบปเบ”เบˆเบฒเบเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™เป„เบŸเบฅเปŒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ, VCS เบˆเบฐเบชเบฐเปเบ”เบ‡เบžเบฝเบ‡เปเบ•เปˆเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡.
เบ‚เปเป‰เป€เบชเบเบซเบผเบฑเบเบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™เบ—เบฑเบšเป„เบŸเบฅเปŒเป€เบžเบทเปˆเบญเป€เบšเบดเปˆเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡.

เบงเบดเบ—เบตเบเบฒเบ™เป‚เบญเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป„เบ›เบชเบนเปˆเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบญเบทเปˆเบ™เป†เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ‚เบฑเบ”เปเบเป‰เบ‡เปเบฅเบฐเป„เบŸเบฅเปŒเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบเบฑเบเปƒเบซเบเปˆ

เบ‚เปเบ‚เบญเบšเปƒเบˆเบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆ deployDump เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เบ‚เบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบชเบฒเบกเบฒเบ”เบ–เบทเบเปเบเป‰เป„เบ‚เปƒเบ™เปเบšเบšเบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ›เบปเบเบเบฐเบ•เบด. เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบžเบตเปˆเบก / เบฅเบถเบšโ€‹เป€เบชเบฑเป‰เบ™โ€‹เปƒเบซเบกเปˆโ€‹เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เป„เบงเป‰โ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เปเบ›เบ‡โ€‹เปƒเบ™โ€‹เบ—เบฑเบ™โ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบ„เบงเบšโ€‹เบ„เบธเบกโ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹, เบซเบผเบทโ€‹เบชเป‰เบฒเบ‡ / เบฅเบถเบšโ€‹เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เป„เบงเป‰โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบชเป‰เบฒเบ‡ / เบฅเบถเบšโ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เบ—เบตเปˆโ€‹เบชเบญเบ”โ€‹เบ„เป‰เบญเบ‡โ€‹เบเบฑเบ™โ€‹เปƒเบ™โ€‹เบเบฒเบ™ dump directoryโ€‹.

เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบทเปˆเบญเบชเป‰เบฒเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปƒเบซเบกเปˆเปƒเบ™ schema public เบžเบฝเบ‡เปเบ•เปˆเบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเปƒเบซเบกเปˆเบ—เบตเปˆเบกเบตเบ™เบฒเบกเบชเบฐเบเบธเบ™ .sql เปƒเบ™โ€‹เบฅเบฐโ€‹เบšเบปเบšโ€‹ public/functions, เป€เบญเบปเบฒเบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เบ‚เบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบงเป‰เปƒเบ™เบกเบฑเบ™, เบฅเบงเบกเบ—เบฑเบ‡เบšเบฅเบฑเบญเบ CREATE OR REPLACE FUNCTION, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆ deployDump. เบเบฒเบ™เปเบเป‰เป„เบ‚เปเบฅเบฐเบเบฒเบ™เบฅเบถเบšเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเป€เบเบฑเบšเป„เบงเป‰เปเบกเปˆเบ™เป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เปเบšเบšเบ”เบฝเบงเบเบฑเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบฅเบฐเบซเบฑเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ—เบฑเบ‡ VCS เปเบฅเบฐเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™.

เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เบ›เบฒโ€‹เบเบปเบ”โ€‹เบ‚เบถเป‰เบ™โ€‹เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เปเบซเบผเปˆเบ‡โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เป„เบงเป‰โ€‹, เบซเบผเบทโ€‹เบ„เบงเบฒเบกโ€‹เปเบ•เบโ€‹เบ•เปˆเบฒเบ‡โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบŠเบทเปˆโ€‹เบ‚เบญเบ‡โ€‹เป„เบŸเบฅโ€‹เปŒโ€‹เปเบฅเบฐโ€‹เบ‚เบฑเป‰เบ™โ€‹เบ•เบญเบ™โ€‹เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เป„เบงเป‰โ€‹, เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹. deployDump เบˆเบฐเบฅเบปเป‰เบกเป€เบซเบฅเบง, เบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”. เบšเปเปˆเบเบปเบ‡เบเบฑเบ™เบ‚เบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบฅเบฐเบซเบงเปˆเบฒเบ‡ dump เปเบฅเบฐเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ deployDump.

เป€เบกเบทเปˆเบญเบชเป‰เบฒเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปƒเบซเบกเปˆ, เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบชเปˆเบŠเบทเปˆเป„เบŸเบฅเปŒเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡. เบกเบฑเบ™เบžเบฝเบ‡เบžเปเบชเปเบฒเบฅเบฑเบšเป„เบŸเบฅเปŒเบ—เบตเปˆเบˆเบฐเบกเบตเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบ .sql. เบซเบผเบฑเบ‡เบˆเบฒเบเป‚เบ— deployDump เบ‚เปเป‰เบ„เบงเบฒเบกเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบˆเบฐเบกเบตเบŠเบทเปˆเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เปˆเบฝเบ™เบŠเบทเปˆเป„เบŸเบฅเปŒ.

deployDump เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ›เปˆเบฝเบ™เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเบซเบผเบทเบ›เบฐเป€เบžเบ”เบเบฑเบšเบ„เบทเบ™เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบก, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบกเบตเบงเบดเบ—เบตเบเบฒเบ™เบ„เบฅเบฒเบชเบชเบดเบเบ—เบตเปˆเป€เบˆเบปเป‰เบฒเบˆเบฐเบ•เป‰เบญเบ‡.
เบ›เบฐเบ•เบดเบšเบฑเบ”เบเปˆเบญเบ™ DROP FUNCTION, เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ CREATE OR REPLACE FUNCTION.

เปเบ•เปˆเบซเบ™เป‰เบฒเป€เบชเบเบ”เบฒเบ, เบกเบตเบšเบฒเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™ deployDump เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ™เบณเปƒเบŠเป‰เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป„เบ”เป‰. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ–เป‰เบฒเบŸเบฑเบ‡เบŠเบฑเบ™ trigger เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป‚เบ”เบเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบซเบ™เบถเปˆเบ‡ trigger เบ–เบทเบเป‚เบเบเบเป‰เบฒเบ. เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ–เบทเบเปเบเป‰เป„เบ‚เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เป‚เบ”เบเปƒเบŠเป‰เป„เบŸเบฅเปŒเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบ.

เบ–เป‰เบฒเป€เบˆเบปเป‰เบฒเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเปƒเบ™เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ schema-keeper, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป„เบŸเบฅเปŒเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบ•เป‰เบญเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเป‚เบญเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบญเบทเปˆเบ™เป†เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ—เบตเปˆเบ”เบตเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเปเบกเปˆเบ™ เบ„เปเบฒเบชเบญเบ™ / เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบ.

เบเบฒเบ™เป‚เบญเบ™เบเป‰เบฒเบเบ•เป‰เบญเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบตเบ”เบ•เบปเบง deployDump. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบฎเบฑเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบฅเบฐเปเบเป‰เป„เบ‚เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบกเบตเบšเบฑเบ™เบซเบฒเป€เบžเบทเปˆเบญเปƒเบซเป‰เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบ”เป‰เบ–เบทเบเป‚เบญเบ™เบ•เปเปˆเบกเบฒเป‚เบ”เบเบšเปเปˆเบกเบตเบšเบฑเบ™เบซเบฒ.

เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบˆเบฐเบ–เบทเบเบญเบฐเบ—เบดเบšเบฒเบเปƒเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™เบžเบฒเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰.

เบงเบดเบ—เบตเบเบฒเบ™เบˆเบฑเบ”เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบฐเบซเบ™เบฒเบ™เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™เป‚เบ”เบเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡

เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบชเบฐเบ„เบดเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบชเบปเบกเบšเบนเบ™เบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ–เบทเบเป€เบ›เบตเบ”เบ•เบปเบงเป‚เบ”เบเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบฅเบฒเบง, เบ™เปเบฒเป€เบญเบปเบฒเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปƒเบซเป‰เบชเบญเบ”เบ„เปˆเบญเบ‡เบเบฑเบšเบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบ—เบตเปˆเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™ VCS. เบงเบดเบ—เบตเบ—เบตเปˆเบ‡เปˆเบฒเบเบ—เบตเปˆเบชเบธเบ”เปเบกเปˆเบ™เบเบฒเบ™เปเบšเปˆเบ‡เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบญเบญเบเป€เบ›เบฑเบ™ 3 เบ‚เบฑเป‰เบ™เบ•เบญเบ™:

  1. เบ™เปเบฒเป€เบ‚เบปเป‰เบฒเป„เบŸเบฅเปŒเบ—เบตเปˆเบกเบตเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ—เบตเปˆเบˆเบฐเบ–เบทเบเป€เบญเบตเป‰เบ™เบงเปˆเบฒ e.g. base.sql
  2. เบ™เบณเปƒเบŠเป‰เบเบฒเบ™เบเป‰เบฒเบเบ–เบดเปˆเบ™เบ–เบฒเบ™
  3. เบ—เป‰เบฒเบ—เบฒเบ deployDump

base.sql เปเบกเปˆเบ™เบˆเบธเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบขเบนเปˆเป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปเบฅเบฐเบ›เบฐเบ•เบดเบšเบฑเบ” deployDump, เบงเปˆเบฒเปเบกเปˆเบ™ base.sql + ะผะธะณั€ะฐั†ะธะธ + deployDump = ะฐะบั‚ัƒะฐะปัŒะฝะฐั ัั‚ั€ัƒะบั‚ัƒั€ะฐ ะ‘ะ”. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เป„เบŸเบฅเปŒเบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป‚เบ”เบเปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ” pg_dump. เปƒเบŠเป‰เปเบฅเป‰เบง base.sql เบชเบฐเป€เบžเบฒเบฐเป€เบกเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™.

เปƒเบซเป‰เป‚เบ—เบซเบฒ script เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบชเบปเบกเบšเบนเบ™ refresh.sh. เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบญเบฒเบ”เบˆเบฐเป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเบ™เบตเป‰:

  1. เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบ›เบตเบ”เบ•เบปเบงเปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ‚เบญเบ‡เบฅเบฒเบง refresh.sh เปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™
  2. เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบกเบท, เบ”เบฑเบ”เปเบเป‰เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เป€เบžเบทเปˆเบญเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเปƒเบซเบกเปˆ (ALTER TABLE ... ADD COLUMN เปเบฅเบฐเบญเบทเปˆเบ™เป†)
  3. เบซเบผเบฑเบ‡เบˆเบฒเบเบชเปเบฒเป€เบฅเบฑเบ”เบงเบฝเบเบ‡เบฒเบ™, เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ—เบซเบฒเบซเบ™เป‰เบฒเบ—เบตเปˆ saveDumpเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™ VCS
  4. เป€เบ›เบตเบ”เบ•เบปเบงเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ„เบทเบ™เปƒเปเปˆ refresh.sh, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, verifyDumpเป€เบŠเบดเปˆเบ‡เบ•เบญเบ™เบ™เบตเป‰เบชเบฐเปเบ”เบ‡เบฅเบฒเบเบŠเบทเปˆเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบˆเบฐเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบ
  5. เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบญเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบ›เบซเบฒเป„เบŸเบฅเปŒเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบ, เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡ refresh.sh ะธ verifyDump, เปเบฅเบฐ, เบ–เป‰เบฒเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเป„เบ”เป‰เบ–เบทเบเบฅเบงเบšเบฅเบงเบกเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡, verifyDump เบˆเบฐเบšเปเปˆเบชเบฐเปเบ”เบ‡เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปเบฅเบฐ dump เบ—เบตเปˆเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰

เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เปเบกเปˆเบ™เป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบเบฑเบšเบซเบผเบฑเบเบเบฒเบ™ gitflow. เปเบ•เปˆเบฅเบฐเบชเบฒเบ‚เบฒเปƒเบ™ VCS เบˆเบฐเบกเบตเบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบ‚เบญเบ‡ dump, เปเบฅเบฐเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบฅเบงเบกเบชเบฒเบ‚เบฒ, dumps เบˆเบฐเบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”, เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบฅเบงเบกเบ•เบปเบง, เปเบ•เปˆเบ–เป‰เบฒเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบชเบฒเบ‚เบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบขเบนเปˆเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ”เบฝเบงเบเบฑเบ™, เบ„เบงเบฒเบกเบ‚เบฑเบ”เปเบเป‰เบ‡เบญเบฒเบ”เบˆเบฐเป€เบเบตเบ”เบ‚เบทเป‰เบ™.

เปƒเบซเป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ‚เบฑเบ”เปเบเป‰เบ‡เป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเบขเปˆเบฒเบ‡: เบกเบตเบชเบฒเบ‚เบฒ เบžเบฑเบ”เบ—เบฐเบ™เบฒเบŠเบถเปˆเบ‡โ€‹เบˆเบฒเบโ€‹เบชเบญเบ‡โ€‹เบชเบฒโ€‹เบ‚เบฒโ€‹: feature1 ะธ feature2, เบ—เบตเปˆเบšเปเปˆเบกเบตเบ‚เปเป‰เบ‚เบฑเบ”เปเบเปˆเบ‡เบเบฑเบš เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เปเบ•เปˆเบกเบตเบ„เบงเบฒเบกเบ‚เบฑเบ”เปเบเป‰เบ‡เบเบฑเบšเบเบฑเบ™เปเบฅเบฐเบเบฑเบ™. เบงเบฝเบเบ‡เบฒเบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบฅเบงเบกเบชเบฒเบ‚เบฒเบ—เบฑเบ‡เบชเบญเบ‡เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ เบžเบฑเบ”เบ—เบฐเบ™เบฒ. เบชเปเบฒเบฅเบฑเบšเบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ—เปเบฒเบญเบดเบ”เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบชเบฒเบ‚เบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐโ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบฅเบงเบกโ€‹ เบžเบฑเบ”เบ—เบฐเบ™เบฒ เบเบฑเบšเบชเบฒเบ‚เบฒเบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญ, เปเบเป‰เป„เบ‚เบ‚เปเป‰เบ‚เบฑเบ”เปเบเปˆเบ‡เปƒเบ™เบชเบฒเบ‚เบฒเบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญ, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบฅเบงเบกเบชเบฒเบ‚เบฒเบชเบธเบ”เบ—เป‰เบฒเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ เบžเบฑเบ”เบ—เบฐเบ™เบฒ. เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เป„เบฅเบเบฐเบเบฒเบ™เปเบเป‰เป„เบ‚เบ‚เปเป‰เบ‚เบฑเบ”เปเบเปˆเบ‡, เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เปเบเป‰เป„เบ‚เป„เบŸเบฅเปŒเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเปƒเบ™เบชเบฒเบ‚เบฒเบชเบธเบ”เบ—เป‰เบฒเบเป€เบžเบทเปˆเบญเปƒเบซเป‰เบกเบฑเบ™เบเบปเบ‡เบเบฑเบš dump เบชเบธเบ”เบ—เป‰เบฒเบ, เป€เบŠเบดเปˆเบ‡เบฅเบงเบกเบกเบตเบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบฅเบงเบกเบ•เบปเบง.

เบงเบดเบ—เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เบ›เบญเบ”เป„เบžเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป„เบ›เบชเบนเปˆเบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบœเบฐเบฅเบดเบ”

เบ‚เปเบ‚เบญเบšเปƒเบˆเบเบฑเบšเบเบฒเบ™เบกเบต dump เบ‚เบญเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เปƒเบ™ VCS, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบเบงเบ”เบชเบญเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบเบฑเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰. เบ™เบตเป‰เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เป„เบ”เป‰เบ–เบทเบเป‚เบญเบ™เป„เบ›เบชเบนเปˆเบžเบทเป‰เบ™เบ–เบฒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบขเปˆเบฒเบ‡เบชเปเบฒเป€เบฅเบฑเบ”เบœเบปเบ™.

เบ™เบฑเบšโ€‹เบ•เบฑเป‰เบ‡โ€‹เปเบ•เปˆ เบ”เบตเบ™ เปƒเบ™ PostgreSQL เปเบกเปˆเบ™ เบ—เบธเบฅเบฐเบเบณ, เปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ„เปเบฒเบชเบฑเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบšเปเปˆเบ„เบฒเบ”เบ„เบดเบ”, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ "เบšเปเปˆเป€เบˆเบฑเบšเบ›เบงเบ”" เป„เบ”เป‰. ROLLBACK:

  1. เป€เบฅเบตเปˆเบกเบ—เบธเบฅเบฐเบเปเบฒ
  2. เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบ™เบ—เบธเบฅเบฐเบเปเบฒ
  3. เปƒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ”เบฝเบงเบเบฑเบ™, เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ deployDump
  4. เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ, เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ verifyDump. เบ–เป‰เบฒเบšเปเปˆเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”, เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ COMMIT. เบ–เป‰เบฒเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”, เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ ROLLBACK

เบ‚เบฑเป‰เบ™เบ•เบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบเปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเป€เบžเบทเปˆเบญเบ™เบณเปƒเบŠเป‰เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เบฅเบงเบกเบ—เบฑเบ‡เป€เบงเบฅเบฒเบชเบนเบ™เบฅเบปเบ‡.

เบชเบฐเบซเบฅเบธเบš

เบ‚เปเบ‚เบญเบšเปƒเบˆเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบšเบตเบšเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบนเบ‡เบชเบธเบ”เบญเบญเบเบˆเบฒเบเป‚เบ„เบ‡เบเบฒเบ™ "PHP + PostgreSQL", เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบเบฒเบ™เป€เบชเบเบชเบฐเบฅเบฐเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบซเบ™เป‰เบญเบเป€เบกเบทเปˆเบญเบ—เบฝเบšเบเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบธเบเป€เบซเบ”เบœเบปเบ™เบ—เบฒเบ‡เบ—เบธเบฅเบฐเบเบดเบ”เปƒเบ™เบฅเบฐเบซเบฑเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ•เบปเป‰เบ™เบ•เป. เบเบดเปˆเบ‡เป„เบ›เบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เปเป‰เบกเบนเบ™เปƒเบ™ PL/pgSQL เบกเบฑเบเบˆเบฐเบกเบตเบ„เบงเบฒเบกเป‚เบ›เปˆเบ‡เปƒเบชเปเบฅเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบฅเบฐเบซเบฑเบ”เบซเบ™เป‰เบญเบเบเบงเปˆเบฒเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ”เบฝเบงเบเบฑเบ™เบ—เบตเปˆเบ‚เบฝเบ™เปƒเบ™ PHP.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™