🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.php
Article #232126

Re: Laravel - jakie pliki i foldery można usunąć?

#232126
From: Wojciech Bancer
Date: Thu, 27 Dec 2018 21:08
55 lines
4031 bytes
On 2018-12-27, Borys Pogoreło <borys@pl.edu.leszno> wrote:

[...]

>> Typowo dla tego typu narzędzi - tworzy nowy katalog z wersją (iteracyjną), 
>> robi wszystko co ma robić i dopiero jak wszystko skończy poprawnie, to podmienia 
>> symlinka "current". Wstrzyknąć można np. migrację bazy danych (z symfony wspierany 
>> jest doctrine migration), potrafi też zadbać o prawa do zapisu wskazanych katalogów,
>> czyści cache itp.
>
> A tak z ciekawości - da się zrealizować scenariusze w rodzaju "deploy się
> sypnął na dalszym etapie, więc wycofaj migracje w bazie, ale tylko te przed
> chwilą wykonane"? Albo np. w jakiś sposób przekazać argumenty tylko do
> jednego etapu procesu (przykładowo czasem chcę uruchomić tylko jeden Seeder
> przy aktualizacji aplikacji Laravel)?

Możesz ustalać role poszczególnych serwerów (np. app/db) i przypisać odpowiednie
komendy do ról. Możesz wywołać poszczególne komendy, np:

dep database:migrate --roles=db
(w laravelu pewnie będzie dep artisan:migrate)

Tu masz więcej o możliwych podziałach tasków:
https://deployer.org/docs/tasks
w sekcji filtering.

Przy czym ja osobiście mam wpisane migracje do bazy tuż przed samym
linkowaniem do current, więc jak migracja bazy zawiedzie, to po prostu
nic się nie wykona (migrację pisze jako transakcyjne, więc jak coś pójdzie
nie tak, to z automatu pójdzie rollback na bazie).

Jeśli któraś faza nie wyjdzie, to "domyślnie" nic się nie zmieniło,
nie podmienił się link do wersji bieżącej, więc można cały proces 
ponowić od początku.

Wycofanie konkretnego etapu z bazy danych (już po tym jak deployment poszedł
i wszystko było ok) jeśli muszę, to już wykonuję na serwerze i przy założeniu,
że jest poprawnie wypełniona sekcja down() w migracjach. Ale szczerze mówiąc,
to wolę tak projektować system, by tego unikać, bo tego typu cofanie bazy to
proszenie się o kłopoty.

>> Alternatywą (którą mi się zdarzało stosować w projektach JS) jest
>> też shipit + shipit-deploy. Pozwala np. budować sobie "gdzieś na boku"
>> taką aplikację javascript, a na serwer posłać tylko niezbędne 
>> pliki.
>
> Też sobie zapiszę. Na szczęście w JS nie mam takich projektów, by sięgać po
> tak rozbudowane narzędzia.

Ja ostatnio jestem zakochany w serverless, więc siłą rzeczy więcej w node 
siedze. :-)

-- 
Wojciech Bańcer
wojciech.bancer@gmail.com
Technical Details
Message-ID: <slrnq2afqf.m3b.wojciech.bancer@pl-test.org>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!border1.nntp.ams1.giganews.com!nntp.giganews.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <pv194c$n62$1@node2.news.atman.pl> <1vv29hjg3ze22.1lt4m8mrjbpwi.dlg@40tude.net> <pv5rmc$t57$1@node1.news.atman.pl> <slrnq1ctk7.1ru5.wojciech.bancer@pl-test.org> <pv5t85$uim$1@node1.news.atman.pl> <slrnq1cu93.1ru5.wojciech.bancer@pl-test.org> <pv5uof$d9$1@node1.news.atman.pl> <slrnq1d1pp.1un2.wojciech.bancer@pl-test.org> <pv61rt$hp$1@node2.news.atman.pl> <slrnq1fv1f.hvs.wojciech.bancer@pl-test.org> <pvbmpb$8tv$2@node2.news.atman.pl> <slrnq1ion3.6b9.wojciech.bancer@pl-test.org> <1kwcs63zaj9rh$.dlg@tyczka.com> <slrnq29gnt.3o6.wojciech.bancer@pl-test.org> <v5wskoobr7lk$.y7ev4ps4h8ap$.dlg@40tude.net> <slrnq29qrb.a2l.wojciech.bancer@pl-test.org> <1pg9va43xkq5e.19aw3pkv8dd9r$.dlg@40tude.net>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!border1.nntp.ams1.giganews.com!nntp.giganews.com!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-a-02.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Newsgroups: pl.comp.lang.php
From: Wojciech Bancer <wojciech.bancer@gmail.com>
Subject: Re: Laravel - jakie pliki i foldery
 można usunąć?
References: <pv194c$n62$1@node2.news.atman.pl> <1vv29hjg3ze22.1lt4m8mrjbpwi.dlg@40tude.net> <pv5rmc$t57$1@node1.news.atman.pl> <slrnq1ctk7.1ru5.wojciech.bancer@pl-test.org> <pv5t85$uim$1@node1.news.atman.pl> <slrnq1cu93.1ru5.wojciech.bancer@pl-test.org> <pv5uof$d9$1@node1.news.atman.pl> <slrnq1d1pp.1un2.wojciech.bancer@pl-test.org> <pv61rt$hp$1@node2.news.atman.pl> <slrnq1fv1f.hvs.wojciech.bancer@pl-test.org> <pvbmpb$8tv$2@node2.news.atman.pl> <slrnq1ion3.6b9.wojciech.bancer@pl-test.org> <1kwcs63zaj9rh$.dlg@tyczka.com> <slrnq29gnt.3o6.wojciech.bancer@pl-test.org> <v5wskoobr7lk$.y7ev4ps4h8ap$.dlg@40tude.net> <slrnq29qrb.a2l.wojciech.bancer@pl-test.org> <1pg9va43xkq5e.19aw3pkv8dd9r$.dlg@40tude.net>
Organization: None
Date: Thu, 27 Dec 2018 22:08:30 +0100
User-Agent: slrn/1.0.3 (Darwin)
Mime-Version: 1.0
Message-ID: <slrnq2afqf.m3b.wojciech.bancer@pl-test.org>
Lines: 55
NNTP-Posting-Host: 46.227.242.29
X-Trace: 1545944911 unt-rea-a-01.news.neostrada.pl 501 46.227.242.29:40240
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit