Pisinisi fa'atatau ile fa'amaumauga fa'aaoga SchemaKeeper

O le faʻamoemoe o lenei tusiga o le faʻaaogaina lea o le faʻataʻitaʻiga o se faletusi fa'atonu-tausia fa'aalia meafaigaluega e mafai ona fa'afaigofie tele le fa'agasologa o le atina'eina o fa'amaumauga i totonu o poloketi PHP e fa'aaoga ai le PostgreSQL DBMS.

O faʻamatalaga mai lenei tusiga o le a, muamua lava, e aoga i tagata atinaʻe o loʻo manaʻo e faʻaogaina le tele o gafatia PostgreSQL, ae o loʻo feagai ma faʻafitauli o loʻo faʻatumauina pisinisi faʻatatau i totonu o faʻamaumauga.

O lenei tusiga o le a le faʻamatalaina le lelei poʻo le le lelei o le teuina o faʻamatalaga pisinisi i totonu o se faʻamaumauga. E manatu o le filifiliga ua uma ona faia e le tagata faitau.

O fesili nei o le a iloiloina:

  1. O le a le ituaiga e tatau ona teuina ai se fa'aputuga o fa'amaumauga tu'ufa'atasiga i totonu o se faiga e pulea fa'aliliuga (e ta'ua mulimuli ane o le VCS)
  2. E fa'afefea ona siaki suiga i le fausaga o fa'amaumauga pe a uma ona fa'asaoina se lafoa'i
  3. Faʻafefea ona faʻafeiloaʻi suiga i le fausaga o faʻamaumauga i isi siosiomaga e aunoa ma feteʻenaʻiga ma faila femalagaiga tetele
  4. Fa'afefea ona fa'atulagaina le fa'agasologa o galuega tutusa i luga o se poloketi e le tele o tagata atia'e
  5. E faʻafefea ona faʻapipiʻiina ma le saogalemu nisi suiga i le fausaga o faʻamaumauga i se siosiomaga gaosiga

    SchemaKeeper ua fuafuaina mo le galulue faatasi ma le teuina o taualumaga ua tusia i le gagana PL/pgSQL. O suʻega ma isi gagana e leʻi faia, o le faʻaaogaina atonu e le aoga pe atonu foi e le mafai.

E fa'afefea ona teu se fa'amaumauga tu'ufa'atasiga tu'ufa'atasi ile VCS

fale faitautusi fa'atonu-tausia maua ai se galuega saveDump, lea e faʻasaoina ai le fausaga o mea uma mai le faʻamaumauga o faila faila eseese. O le fa'atinoga o se fa'atonuga o lo'o i ai le fa'asologa o fa'amaumauga, vaevaeina i faila tu'ufa'atasi e faigofie ona fa'aopoopo i le VCS.

Sei o tatou tilotilo i le faaliliuina o mea mai se database i faila e faʻaaoga ai le tele o faʻataʻitaʻiga:

Ituaiga mea
Fuafuaga
Ulutala
Ala fa'atatau ile faila

laulau
lautele
faamatalaga tau tupe
./public/tables/accounts.txt

Fa'atonuga teuina
lautele
auth(hash bigint)
./public/functions/auth(int8).sql

Faatomuaga
booking
faasologa o tau
./booking/views/tariffs.txt

O mea o loʻo i totonu o faila o se faʻamatalaga tusitusia o le fausaga o se mea faʻamaumauga faʻamaumauga. Mo se faʻataʻitaʻiga, mo faʻatonuga teuina, o mea o loʻo i totonu o le faila o le a avea ma faʻamatalaga atoa o le faʻatonuga teuina, amata i le poloka. CREATE OR REPLACE FUNCTION.

E pei ona mafai ona vaʻaia mai le laulau o loʻo i luga, o le ala i le faila e teu ai faʻamatalaga e uiga i le ituaiga, fuafuaga ma le igoa o le mea. O lenei faiga e fa'afaigofie ai ona fa'atautaia le toe fa'afo'i ma le fa'ailoga tulafono o suiga i totonu o fa'amaumauga.

faʻaseʻe .sql mo faila o loʻo i ai faʻamaumauga faʻapipiʻi faʻatonuga, na filifilia lea ina ia otometi ona saunia e le IDE meafaigaluega mo le fegalegaleai ma le database pe a tatalaina le faila.

E fa'afefea ona siaki suiga i le fausaga o fa'amaumauga pe a uma ona fa'asaoina se lafoa'i

E ala i le faʻasaoina o se faʻaputuga o le faʻasologa o faʻamaumauga o loʻo i ai nei i le VCS, matou te maua le avanoa e siaki ai pe na faia suiga i le fausaga faʻamaumauga ina ua uma ona faia le lafoaia. I le faletusi fa'atonu-tausia e iloa ai suiga i le fausaga o faʻamaumauga, ua tuʻuina atu se galuega verifyDump, lea e toe faafoi mai ai faʻamatalaga e uiga i eseesega e aunoa ma ni aʻafiaga.

O le isi auala e siaki ai o le toe vala'au lea o le galuega saveDump, fa'amaonia le lisi lava e tasi, ma siaki i totonu VCS mo suiga. Talu ai o mea uma mai le database o loʻo teuina i faila eseese, o le VCS o le a faʻaalia naʻo mea ua suia.
O le faʻaletonu autu o lenei metotia o le manaʻomia lea o le toe faʻauluina o faila ina ia iloa ai suiga.

Faʻafefea ona faʻafeiloaʻi suiga i le fausaga o faʻamaumauga i isi siosiomaga e aunoa ma feteʻenaʻiga ma faila femalagaiga tetele

Faafetai i le galuega deployDump E mafai ona fa'asa'o le fa'ailoga fa'apogai o faiga fa'apolopolo i le auala lava e tasi e pei o le fa'asologa masani o le fa'atonuga. E mafai ona e fa'aopoopo/tapē'ese laina fou ile fa'asologa o fa'asologa fa'apolopolo ma vave fa'aoso suiga ile fa'atonutonuina o fa'aliliuga, po'o le fa'atupu/tapē'ese o faiga fa'apolopolo e ala ile fatuina/tapē'ese o faila fa'atatau ile lisi o le lafoa'i.

Mo se faʻataʻitaʻiga, ia faia se faiga fou teuina i totonu o se schema public na'o le faia o se faila fou ma le fa'aopoopoga .sql i totonu o le lisi public/functions, tuʻu le faʻailoga puna o le faʻatonuga teuina i totonu, e aofia ai le poloka CREATE OR REPLACE FUNCTION, ona valaau lea o le galuega deployDump. O le suia ma le tapeina o se faiga teu e tupu i le auala lava e tasi. O le mea lea, e alu le code i le VCS ma le database i le taimi e tasi.

Afai e aliali mai se mea sese i le source code o soʻo se faiga teu, poʻo se eseesega i le va o igoa o le faila ma le faʻatonuga teuina, ona deployDump o le a toilalo, faʻaalia mea sese. O le le fetaui o faiga teu i le va o le lapisi ma le fa'amaumauga o lo'o iai nei e le mafai pe a fa'aaoga deployDump.

Pe a fatuina se faiga fou teu, e leai se manaʻoga e faʻaoga ma le lima le igoa faila saʻo. Ua lava mo le faila e iai le faʻaopoopoga .sql. Ina ua uma le valaau deployDump o le tusitusiga sese o le ai ai le igoa saʻo, lea e mafai ona faʻaaogaina e toe faʻaigoaina ai le faila.

deployDump fa'ataga oe e sui tulaga o se galuega po'o le toe fo'i mai e aunoa ma ni gaioiga fa'aopoopo, ae fa'atasi ai ma le faiga masani e tatau ona e faia.
faia muamua DROP FUNCTION, ma na o le taimi lena CREATE OR REPLACE FUNCTION.

Ae paga lea, ei ai nisi tulaga e deployDump le mafai ona fa'aogaina otometi suiga. Mo se fa'ata'ita'iga, pe a ave'ese se galuega fa'aoso lea e fa'aogaina e le itiiti ifo ma le tasi. O ia tulaga e foia ma le lima e ala i faila femalagaiga.

Afai o oe e nafa ma le femalagaiga o suiga i faiga teu fa'atonu-tausia, ona tatau loa lea ona fa'aoga faila o femalagaiga e fesiita'i ai isi suiga ile fausaga. Mo se faʻataʻitaʻiga, o se faletusi lelei mo le galulue ma femalagaiga o aoaoga faavae/malaga.

E tatau ona fa'aoga femalagaiga a'o le'i fa'alauiloa deployDump. O lenei mea e mafai ai e oe ona faia suiga uma i le fausaga ma foia tulaga faʻafitauli ina ia mafai ai ona faʻafeiloaʻi suiga i taualumaga teuina e aunoa ma ni faʻafitauli.

O le galulue fa'atasi ma femalaga'iga o le a fa'amatalaina atili i vaega nei.

Fa'afefea ona fa'atulagaina le fa'agasologa o galuega tutusa i luga o se poloketi e le tele o tagata atia'e

E manaʻomia le fatuina o se faʻamaumauga mo le amataina atoatoa o le database, lea o le a faʻalauiloaina e le tagata faʻapipiʻi i luga o lana masini galuega, ma aumaia le fausaga o le faʻamaumauga faʻapitonuʻu e tusa ai ma le lafoaia na teuina i le VCS. O le auala pito sili ona faigofie o le vaevae lea o le amataga o le database i le lotoifale i ni laasaga se 3:

  1. Fa'aulufale mai se faila e iai se fausaga fa'avae o le a ta'ua e.g. base.sql
  2. Fa'aaogaina o Femalagaaiga
  3. Lui deployDump

base.sql o le amataga lea o lo'o fa'aogaina ma fa'atino ai femalagaiga deployDump, o lona uiga base.sql + миграции + deployDump = актуальная структура БД. E mafai ona e fatuina sea faila e faʻaaoga ai le aoga pg_dump. Fa'aaogaina base.sql fa'apitoa pe a amataina le fa'amaumauga mai le amataga.

Tatou vala'au le fa'amaumauga mo le fa'aulutalaina atoa o fa'amaumauga refresh.sh. E ono foliga fa'apea le fa'asologa o galuega:

  1. E fa'alauiloa e le atina'e lona si'osi'omaga refresh.sh ma maua le fausaga o fa'amaumauga o lo'o iai nei
  2. E amata galue le tagata atiaʻe i le galuega o loʻo i ai, faʻaleleia le faʻamaumauga i le lotoifale e faʻafetaui ai manaʻoga o le galuega fou (ALTER TABLE ... ADD COLUMN ma isi)
  3. A maeʻa le galuega, e taʻua e le tagata faʻapitoa le galuega saveDumpe faia suiga ua faia i le database i le VCS
  4. Toe fa'alauiloa refresh.shona verifyDumplea o lo'o fa'aalia nei se lisi o suiga e aofia ai i le femalagaiga
  5. E tu'uina atu e le fa'atupuina suiga uma o le fausaga i le faila femalagaiga, toe tamo'e refresh.sh и verifyDump, ma, afai e sa'o le tuufaatasia o le femalagaiga, verifyDump o le a le fa'aalia se eseesega i le va o fa'amaumauga fa'apitonu'u ma le fa'apolopolo fa'apolopolo

O le faagasologa o loʻo faʻamatalaina i luga e fetaui ma mataupu faavae gitflow. O lala ta'itasi i le VCS o le a iai lana lava fa'aliliuga o le lapisi, ma a tu'ufa'atasia lala, o le a tu'ufa'atasia le lapisi. I le tele o tulaga, e leai se isi gaioiga e manaʻomia pe a maeʻa le tuʻufaʻatasia, ae afai e faia suiga i lala eseese, mo se faʻataʻitaʻiga, i le laulau e tasi, e ono tulaʻi mai se feeseeseaiga.

Sei o tatou mafaufau i se tulaga feteenai e faaaoga ai se faataitaiga: o loo i ai se lala tuputupu aʻe, lea e lua lala lala: feature1 и feature2, e leai ni feteenaiga ma tuputupu aʻe, ae feeseeseaʻi le tasi i le isi. O le galuega o le tuufaatasia o lala e lua i totonu tuputupu aʻe. Mo lenei tulaga, e fautuaina e muamua tuʻufaʻatasia se tasi o lala i totonu tuputupu aʻeona sosoo ai lea tuputupu aʻe i le lala o totoe, foia feeseeseaiga i le lala o totoe, ona tuufaatasia lea o le lala mulimuli i totonu tuputupu aʻe. I le taimi o le fofoina o feteʻenaʻiga, atonu e te manaʻomia le faʻapipiʻiina o le faila o femalagaiga i le lala mulimuli ina ia fetaui ma le lafoaia mulimuli, lea e aofia ai iʻuga o le tuʻufaʻatasiga.

E faʻafefea ona faʻapipiʻiina ma le saogalemu nisi suiga i le fausaga o faʻamaumauga i se siosiomaga gaosiga

Faʻafetai i le i ai o le lafoaia o le fausaga faʻamaumauga o loʻo i ai nei i le VCS, e mafai ai ona siaki le faʻamaumauga o gaosiga mo le tausisia tonu o le fausaga manaʻomia. O lenei mea e faʻamautinoa ai o suiga uma na faʻamoemoeina e le au atinaʻe na faʻafeiloaʻi ma le manuia i le gaosiga.

talu DDL i PostgreSQL o fefa'ataua'iga, e fautuaina e tausisi i le faʻatonuga o loʻo mulimuli mai, ina ia, i le tulaga o se mea e leʻi mafaufauina, e mafai ona e "le tiga" faʻatino ROLLBACK:

  1. Amata fefaʻatauaiga
  2. Fa'atino uma femalagaiga i se fefa'atauaiga
  3. I le fefaʻatauaiga lava e tasi, faʻatino deployDump
  4. A aunoa ma le faʻamaeʻaina o fefaʻatauaiga, faʻatino verifyDump. Afai e leai ni mea sese, tamoe COMMIT. Afai ei ai ni mea sese, tamoe ROLLBACK

O nei laʻasaga e mafai ona faigofie ona tuʻufaʻatasia i auala o loʻo i ai i le faʻaogaina o talosaga, e aofia ai le leai o se taimi.

iʻuga

Faʻafetai i metotia o loʻo faʻamatalaina i luga, e mafai ona faʻapipiʻi le maualuga o le faʻatinoga o galuega a le "PHP + PostgreSQL", aʻo ositaulagaina le faʻaogaina o le faʻaogaina o le atinaʻe faʻatusatusa i le faʻatinoina o pisinisi uma i totonu o le tulafono autu o talosaga. E le gata i lea, o faʻamaumauga faʻamaumauga i PL/pgSQL e masani ona foliga sili atu ona manino ma manaʻomia le itiiti ifo o le code nai lo le galuega tutusa e tusia i le PHP.

puna: www.habr.com

Faaopoopo i ai se faamatalaga