ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ื ื™ืฆืŸ SchemaKeeper

ื“ืขืจ ืฆื™ืœ ืคื•ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ ืื™ื– ืฆื• ื ื•ืฆืŸ ื“ืขื ื‘ื™ื™ืฉืคึผื™ืœ ืคื•ืŸ ืึท ื‘ื™ื‘ืœื™ืึธื˜ืขืง ืกื›ืขืžืข-ื”ื™ื˜ืขืจ ื•ื•ื™ื™ึทื–ืŸ ืžื›ืฉื™ืจื™ื ื•ื•ืึธืก ืงืขื ืขืŸ ื‘ืื˜ื™ื™ื˜ื™ืง ืคืึทืจืคึผืึธืฉืขื˜ืขืจืŸ ื“ืขื ืคึผืจืึธืฆืขืก ืคื•ืŸ ื“ืขื•ื•ืขืœืึธืคึผื™ื ื’ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ืื™ืŸ PHP ืคึผืจืึทื“ื–ืฉืขืงืก ื ื™ืฆืŸ ื“ื™ PostgreSQL DBMS.

ื“ื™ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ืคื•ืŸ โ€‹โ€‹ื“ืขื ืึทืจื˜ื™ืงืœ ื•ื•ืขื˜, ืขืจืฉื˜ืขืจ ืคื•ืŸ ืึทืœืข, ื–ื™ื™ืŸ ื ื•ืฆื™ืง ืคึฟืึทืจ ื“ืขื•ื•ืขืœืึธืคึผืขืจืก ื•ื•ืึธืก ื•ื•ื™ืœืŸ ืฆื• ืžืึทื›ืŸ ื“ื™ ืžืขืจืกื˜ ืคื•ืŸ PostgreSQL ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื–, ืึธื‘ืขืจ ื–ืขื ืขืŸ ืคื™ื™ืกื˜ ืžื™ื˜ ืคึผืจืึธื‘ืœืขืžืก ืฆื• ื”ืึทืœื˜ืŸ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ื’ืขืฉื˜ืขืœื˜ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก.

ื“ืขืจ ืึทืจื˜ื™ืงืœ ื•ื•ืขื˜ ื ื™ืฉื˜ ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื“ื™ ืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉื™ื– ืึธื“ืขืจ ื“ื™ืกืึทื“ื•ื•ืึทื ื˜ื™ื“ื–ืฉื™ื– ืคื•ืŸ ืกื˜ืึธืจื™ื ื’ ื’ืขืฉืขืคื˜ ืœืึธื’ื™ืง ืื™ืŸ ืึท ื“ืึทื˜ืึทื‘ื™ื™ืก. ืขืก ืื™ื– ืื ื’ืขื ื•ืžืขืŸ ืึทื– ื“ื™ ื‘ืจื™ืจื” ืื™ื– ืฉื•ื™ืŸ ื’ืขืžืื›ื˜ ื“ื•ืจืš ื“ื™ ืœื™ื™ืขื ืขืจ.

ื“ื™ ืคืืœื’ืขื ื“ืข ืฉืืœื•ืช ื•ื•ืขื˜ ื–ื™ื™ืŸ ื‘ืึทื˜ืจืึทื›ื˜:

  1. ืื™ืŸ ื•ื•ืึธืก ืคืึธืจืขื ื–ืึธืœ ืึท ื“ืึทืžืคึผ ืกื˜ืจื•ืงื˜ื•ืจ ืคื•ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ื–ื™ื™ืŸ ืกื˜ืึธืจื“ ืื™ืŸ ืึท ื•ื•ืขืจืกื™ืข ืงืึธื ื˜ืจืึธืœ ืกื™ืกื˜ืขื (ื“ืขืจื ืึธืš ืจื™ืคืขืจื“ ืฆื• ื•ื•ื™ VCS)
  2. ื•ื•ื™ ืฆื• ืฉืคึผื•ืจ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืกื˜ืจื•ืงื˜ื•ืจ ื ืึธืš ืฉืคึผืึธืจืŸ ืึท ื“ืึทืžืคึผ
  3. ื•ื•ื™ ืฆื• ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืกื˜ืจื•ืงื˜ื•ืจ ืฆื• ืื ื“ืขืจืข ื™ื ื•ื•ื™ื™ืจืึทื ืžืึทื ืฅ ืึธืŸ ืงืึธื ืคืœื™ืงื˜ ืื•ืŸ ืจื™ื– ืžื™ื™ื’ืจื™ื™ืฉืึทืŸ ื˜ืขืงืขืก
  4. ื•ื•ื™ ืฆื• ืึธืจื’ืึทื ื™ื–ื™ืจืŸ ื“ืขื ืคึผืจืึธืฆืขืก ืคื•ืŸ ืคึผืึทืจืึทืœืขืœ ืึทืจื‘ืขื˜ ืื•ื™ืฃ ืึท ืคึผืจื•ื™ืขืงื˜ ื“ื•ืจืš ืขื˜ืœืขื›ืข ื“ืขื•ื•ืขืœืึธืคึผืขืจืก
  5. ื•ื•ื™ ืฆื• ื‘ืขืฉืึธืœืขื ืฆืขื•ื•ื™ืงืœืขืŸ ืžืขืจ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืกื˜ืจื•ืงื˜ื•ืจ ืฆื• ืึท ืคึผืจืึธื“ื•ืงืฆื™ืข ืกื•ื•ื™ื•ื•ืข

    SchemaKeeper ื“ื™ื–ื™ื™ื ื“ ืคึฟืึทืจ ืืจื‘ืขื˜ืŸ ืžื™ื˜ ืกื˜ืึธืจื“ ืคึผืจืึธื•ืกื™ื“ื–ืฉืขืจื– ื’ืขืฉืจื™ื‘ืŸ ืื™ืŸ ื“ืขืจ ืฉืคึผืจืึทืš 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. Call deployDump

base.sql ืื™ื– ื“ื™ ืกื˜ืึทืจื˜ื™ื ื’ ืคื•ื ื˜ ืื•ื™ืฃ ืฉืคึผื™ืฅ ืคื•ืŸ ื•ื•ืึธืก ืžื™ื™ื’ืจื™ื™ืฉืึทื ื– ื–ืขื ืขืŸ ื’ืขื•ื•ืขื ื“ื˜ ืื•ืŸ ืขืงืกืึทืงื™ื•ื˜ืึทื“ deployDumpื•ื•ืึธืก ืื™ื– base.sql + ะผะธะณั€ะฐั†ะธะธ + deployDump = ะฐะบั‚ัƒะฐะปัŒะฝะฐั ัั‚ั€ัƒะบั‚ัƒั€ะฐ ะ‘ะ”. ืื™ืจ ืงืขื ืขืŸ ืžืึทื›ืŸ ืึทื–ืึท ืึท ื˜ืขืงืข ื ื™ืฆืŸ ื“ื™ ื ื•ืฆืŸ pg_dump. ื’ืขื ื™ืฆื˜ base.sql ืื•ื™ืกืฉืœื™ืกืœืขืš ื•ื•ืขืŸ ื™ื ื™ื˜ื™ืึทืœื™ื–ื™ื ื’ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืคึฟื•ืŸ ืงืจืึทืฆืŸ.

ื–ืืœ ืก ืจื•ืคืŸ ื“ืขื ืฉืจื™ืคื˜ ืคึฟืึทืจ ื’ืึทื ืฅ ื“ืึทื˜ืึทื‘ื™ื™ืก ื™ื ื™ื˜ื™ืึทืœื™ื–ื™ื™ืฉืึทืŸ refresh.sh. ื“ืขืจ ื•ื•ืึธืจืงืคืœืึธื•ื• ืงืขืŸ ื–ื™ื™ืŸ ื•ื•ื™ ื“ืึธืก:

  1. ื“ืขืจ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืœืึธื ื˜ืฉื™ื– ืื™ืŸ ื–ื™ื™ืŸ ืกื•ื•ื™ื•ื•ืข refresh.sh ืื•ืŸ ื’ืขืฅ ื“ื™ ืงืจืึทื ื˜ ื“ืึทื˜ืึทื‘ื™ื™ืก ืกื˜ืจื•ืงื˜ื•ืจ
  2. ื“ืขืจ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ื”ื™ื™ื‘ื˜ ืฆื• ืึทืจื‘ืขื˜ืŸ ืื•ื™ืฃ ื“ื™ ืึทืจื‘ืขื˜ ืื™ืŸ ื”ืึทื ื˜, ืžืึธื“ื™ืคื™ืฆื™ืจืŸ ื“ื™ ื”ื™ื’ืข ื“ืึทื˜ืึทื‘ื™ื™ืก ืฆื• ื˜ืจืขืคืŸ ื“ื™ ื‘ืื“ืขืจืคืขื ื™ืฉืŸ ืคื•ืŸ ื“ื™ ื ื™ื™ึทืข ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ (ALTER TABLE ... ADD COLUMN ื•ื›ื•')
  3. ื ืึธืš ืงืึทืžืคึผืœื™ื˜ื™ื ื’ ื“ื™ ืึทืจื‘ืขื˜, ื“ืขืจ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืจื•ืคื˜ ื“ื™ ืคึฟื•ื ืงืฆื™ืข saveDumpืฆื• ื™ื‘ืขืจื’ืขื‘ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ ื’ืขืžืื›ื˜ ืฆื• ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืก ืื™ืŸ VCS
  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

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’