PHP Automatic updates
Gledam kako da sebi maksimalno olaksam zivot, tako sto cu smisliti kako da
najlakse sredim updates sa jedne verzije na drugu software-a na kome radim. Software je klasicna php/mysql mvc aplikacija. Zanimaju me neki primeri web aplikacija za koje mislite da imaju dobar sistem za update, ili - koji bi ste vi sistem primenili za update. Ono sto mene plasi, u ovom trenutku, je da nista nije konstantno... mozda ce mysql schema morati da se menja, mozda ce core clase morati da se menjaju, mozda ce kontroleri i templejti morati da se menjaju...(u nekom trenutku) Vec vidim kako php ne moze da overwrite-uje php fajl koji je uploadovan preko FTP-a, a pitanje je da li ce php moci da odradi chmod.. :( kao sto znate ima raznoraznih hostinga.. :( any ideas? |
edit: ovo Automatic u imenu topic-a ne mora obavezno da znaci da cela procedura mora skroz automatski da se odvija
ja sam sasvim zadovoljan i varijantom da se recimo kada se admin uloguje dobije poruku da postoji novija verzija, i da bi trebao da updejtuje app. e tu pocinje zabava... - da li probati da sve ide automatsi (klik na update, skidanje paketa, backup, prepisivanje novim fajlovima) - ili da user skine update paket, i uploaduje ga u neki recimo /updates direktorijum, pa onda ovo sa klikom na update iz kontrolnog panela - ili nesto trece? sve je bolje od onih kilometarskih upustava (replace fileOld with fileNew...) to je taj "Automatic" momenat ;) :D |
Nisam siguran da postoji univerzalno rjesenje koje sve samo radi i radi na svim hostinzima. Meni se svidja ta druga varijanta ali ovim redom:
- uploadujes sve u neki /update folder - provjeris permisije na svim fajlovima / folderima gdje trebas vrsiti izmjene, ostale requirements - disablujes sajt sa nekim .htaccess -deny ALL - overwriteujes fajlove - enablujes sajt. Ukoliko se tokom provjere pokaze da nesto fali ili nije OK, napravis workaround kako se to rjesava i sta treba uraditi. |
Naravno da ne postoji univerzalno resenje..
ja samo razmisljam kako da eventualne probleme pri update-u svedem na minimum, tako sto cu automatizovati sve sto moze da se automatizuje, a da korisnik ruchno radi samo ono sto mora... primer - WP pluginovi se instaliraju ruchno (ne znam sad za ove najnovije verzije) gallery2 ima sitem: refresh plugins list -> install some pugin - sve se radi iz admin panela. sad, ja naravno mogu da razumem WP tim, oni imaju jedno 1000 puta vishe pluginova, od kojih su neki totalni crap.. ali morate priznati da je mnogo lepse sve odraditi pomocu 2-3 klika nego preko download->unzip->ftp->install a i nisu ni svi korisnici toliko spretni u tim radnjama... |
to resenje sa download->unzip->ftp ce uvek raditi, ali te nista ne kosta da prethodno probas da to uradis kroz par klikova iz admin panela, pa tek kad to ne uspe, da isprintas gresku koju dobijas, i da kao resenje ponudis otklanjanje uzroka te greske ili, eventualno, ovu gore pomenutu sekvencu.
|
Auto zamjena SQL šeme i nije neki problem ali može biti guravo sa permisijama na fajlovima.
|
Aman ljudi kakve permisije :1092: kaže se dozvole ...
|
Citat:
|
Citat:
i zato sam ja prestao da kupujem prevedene knjige o programiranju |
Posle prve... odustao... :)
|
software - mekotvorina
hardware - tvrdotvorina Jedan od prevoda zbog kojeg se zamislim da mijenjam profesiju... |
Upgrade baze nije problem ako paziš na execution time i memory limit. Rebuild search indeksa npr može baš lepo da povuče resursa recimo i ako moraš to da kombinuješ sa još par dodatnih operacija, velika je verovatnoća da se na nekim serverima nećeš uklopiti u limite.
Mi smo problem rešili tako što smo sve korake razdvojili u zasebne rutine koji se asinhrono pozivaju (1. Upgrade postojećih table, 2. Rebuild search indexa, 3. Upgrade dozvola, 4. Something else... 198. Finish). Neka osnovna JavaScript logika se brine o tome da se koraci pozivaju jedan po jedan u odgovarajućem redosledu, ali je svaki korak zaseban request. Nema rollback za sada :( Nismo imali pritužbe (u pitanju su stotine najrazličitijih servera). Najveći problem koji imamo sa upgrade alatom je što ljudi ZABORAVE da ga izvrše nakon što upgraduju same fajlove :) Za dozvole - WordPress ima zgodan auto-upgrade plugin, pa možeš overiti source i videti probleme sa dozvolama i fajlovima i kako ih je čovek rešio. |
tako nesto sam i nakraju smislio..
otprilike ideja je da svaki update paket ima /migration folder sa fajlivima tipa: 0000-getHostInfo.php 0001-checkPreviousVersion.php 0002-checkPermisions.php 0003-updateDb.php 0004-updateUserClass.php itd.. e sad to sa js je ok ideja.. svaki fajl lepo moze po zavrsetku da vrati neki json i da kaze da je sve proslo ok, pa onda da se pozove sledeci. |
Jedini problem sa ajax zahtevima je da moras da 'NAREDIS' korisniku da ne ode sa stranice, i da saceka da se zavrsi upgrade proces.
|
pa ok.. ima onaj JS fora kao na meebo.com koja te upozorava..
Kôd:
<script> |
Vreme je GMT +2. Trenutno vreme je 23:48. |
Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.