Puncte:0

De ce unele comenzi Drush rulează doar din docroot?

drapel us

Vă întrebați dacă știe cineva de ce unele comenzi Drush (cu parametri de fișier) rulează doar din docroot și nu vor rula din rădăcina proiectului/compozitorului?

Comenzi precum drush sql-query și drush locale-import sunt printre acestea.

De exemplu, cu structura standard de foldere Drupal:

/ (rădăcina compozitorului)

  • compozitor.json
  • vânzător
  • traduceri
    • traduceri.fr.po
  • web (docroot)

rulează de la rădăcina compozitorului:

  • vendor/bin/drush locale-import fr translations/translations.fr.po

dă eroare fișier negăsit. Chiar și folosind ./translations/translations.fr.po da aceeasi eroare

dar merg la docroot și rulează:

  • ../vendor/bin/drush ../translations/translation.fr.po

Merge bine.

Scripturile noastre de implementare rulează întotdeauna compozitor, drush și alte comenzi din folderul rădăcină al compozitorului. Deci un pic de durere să trebuiască cd /web și apoi cd .. pentru aceste două comenzi „speciale” Drush. Bănuiesc că trebuie să fie ceva ce fac greșit.

drapel cn
Comenzile IIRC Drush tind să ruleze cu rădăcina web (nu calea de execuție) ca director de lucru - funcționează `vendor/bin/drush locale-import fr ../translations/translations.fr.po` din rădăcina proiectului?
leymannx avatar
drapel ne
Poate depinde de versiunea Drush și de șablonul composer.json pe care îl utilizați. Rădăcina web este definită în composer.json? Ce versiune de Drush?
leymannx avatar
drapel ne
Dar, în cele din urmă, cred că este întotdeauna mai sigur să executați comenzile Drush din webroot.
liquidcms avatar
drapel us
@Clive, da, acesta este răspunsul. Pot rula în rădăcina proiectului, dar Drush încă se gândește la lucruri ca de la docroot. Excelent. Mulțumesc.
liquidcms avatar
drapel us
Nu sunt sigur cum să marchezi un comentariu ca răspuns :(
leymannx avatar
drapel ne
@liquidcms â Puteți să adăugați și să acceptați asta ca răspuns singur, apoi pentru a ajuta viitorii cititori să găsească soluția rapid.
Puncte:0
drapel us

Dacă utilizați un alias drush, nu ar trebui să conteze de unde rulați comanda de ex.

drush @site some-command

Webroot-ul este specificat în alias.

Mai multe informatii https://www.drush.org/latest/site-aliases/

liquidcms avatar
drapel us
Acesta este un alias pentru adresa URL a site-ului. Nu va avea niciun impact asupra faptului că Drush nu gestionează corect calea către argumentele fișierului.
drapel us
@liquidcms Aliasul drush conține diverse setări, inclusiv directorul webroot specificat în setarea rădăcină, de exemplu âroot: /other/path/to/live/drupalâ
Puncte:0
drapel us

Clive nu a postat ca răspuns, așa că voi copia doar aici:

Comenzile Drush rulează ca și cum ar fi din rădăcina web (nu calea de execuție) ca director de lucru. Deci, chiar dacă rulați comanda de la rădăcina proiectului; căile argumentelor trebuie introduse ca și cum ar veni de la rădăcina web.

vendor/bin/drush locale-import fr ../translations/translations.fr.po

  • de la rădăcina proiectului

Răspunsul lui David ar funcționa și dacă ați folosi aliasuri (ceea ce eu nu sunt).

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.