Chociaż jest to stare pytanie z zaakceptowaną odpowiedzią, uważam, że jest jeszcze miejsce na kolejne.
Po pierwsze, pozwól mi powiedzieć z góry, że nie uważam, że Funkcje są odpowiednim narzędziem do tego zadania i powinien zaproponować alternatywny zestaw narzędzi.
Warunkiem współpracy zespołu jest posiadanie serwera pomostowego do testowania wersji rozwojowych projektu, który jest niezależny od serwera produkcyjnego. Cały kod rozwoju jest testowany na serwerze pomostowym i przekazywany na serwer produkcyjny tylko wtedy, gdy jest stabilny i gotowy do wdrożenia. Jednak programiści nie działają bezpośrednio na serwerze pomostowym. Każdy programista pracuje na własnym stanowisku roboczym, korzystając z kontroli wersji i zarządzania kodem źródłowym (SCM) w celu skoordynowania swojej pracy z resztą zespołu.
System SCM pozwala członkom zespołu pracować równolegle nad różnymi gałęziami kodu bez ingerencji między sobą. Tylko mistrz oddziału jest wdrażany na serwerze pomostowym w celach testowych.
Aby utworzyć kopię lustrzaną bazy danych między produkcją, stagingiem i stacjami roboczymi, istnieje moduł o nazwie Kopia zapasowa i migracja, którego można użyć, jeśli korzystasz z hostingu współdzielonego i nie zarządzasz własną bazą danych. Jeśli zarządzasz własnym serwerem bazy danych, jest to jedyny projekt na tym serwerze i korzystasz z mysql , przydatne są następujące pary poleceń:
Rzucić:
mysqldump --all-databases --opt -u root -p > DUMP.sql
Przywrócić:
mysql -u root -p < DUMP.sql
Jeśli twoja nie jest jedyną bazą danych na tym serwerze, napisz skrypt jakiejś wersji mysqldump(lub równoważnej, jeśli nie używasz mysql ), która zrzuca tylko twoje bazy danych.
Utwórz zasadę, że jest to baza danych na serwerze produkcyjnym, który jest nadrzędny. Serwer pomostowy i stacje robocze powinny być kopią produkcyjnej bazy danych, a nie odwrotnie.
Zauważ, że Drupal 7 zachowuje wszystkie ustawienia administratora w bazie danych. Oznacza to, że tworzenie kopii lustrzanej bazy danych między witryną produkcyjną, witryną pomostową i stacjami roboczymi spowoduje migrację ustawień admimacji bez funkcji .
Teraz, aby udostępnić kod:
Standardowym sposobem udostępniania kodu członkom zespołu programistów jest korzystanie z systemu SCM. Drupal jest domyślnie zarządzany za pomocą takiego systemu o nazwie git .
Git pozwala na korzystanie z lokalnych lub zdalnych repozytoriów. Jeśli członkowie zespołu znajdują się w tej samej przestrzeni fizycznej, możesz skonfigurować lokalne repozytorium na serwerze pomostowym. Jeśli są one rozproszone geograficznie, możesz skonfigurować zdalne repozytorium. Jeśli nie masz nic przeciwko innym, którzy mają dostęp do odczytu w opracowywanym kodzie, możesz użyć piaskownicy na Drupal.org jako zdalnego repozytorium. Możesz także użyć obszaru projektu na GitHub . GitHub to nie tylko repozytorium, ale zawiera pewne narzędzia do współpracy i umożliwia repozytoria zarówno publiczne, jak i prywatne.
Zasadniczo system SCM pozwala członkom zespołu pobierać kod źródłowy i dokumentację z repozytorium udostępnianego przez członków zespołu i wcisnąć go ponownie po pracy. SCM śledzi zmiany, a jeśli wystąpi konflikt (np. Ktoś spróbuje wypchnąć kod, który nie zawiera zmian, które zatwierdził inny członek zespołu), poinformuje cię, a także zasugeruje sposób rozwiązania tego konfliktu.
Zwykle przy serdecznej komunikacji dotyczącej podziału zadań między członków zespołu nie będzie konfliktów. Ale dzięki systemowi SCM, który śledzi rzeczy, konflikty stają się możliwe do rozwiązania, nawet jeśli popełnione zostaną błędy lub komunikacja się nie powiedzie.
Istnieje wiele samouczków na temat rozpoczynania pracy z git (GIYF) i korzystania z niego. Dwa polecę: strona internetowa git-scm i Pro Git autorstwa Scott Chacon.