Versionshantering av Drupal

Events happening in the community are now at Drupal community events on www.drupal.org.
siavashg's picture

Hej alla!
Jag och en kollega ska vidareutveckla en sida som redan är lanserad.
Vi ska jobba på sidan samtidigt, så vi behöver synka filerna och databasen med varandra, och så behöver vi självklart versionshantering. Samtidigt behöver vi lansera ändringarna stegvis på skarpa sajten som är uppe och kör.

Förslag på hur vi löser detta på bästa sätt?

Comments

Jag beskriver kort hur vi

dhas's picture

Jag beskriver kort hur vi jobbar med vid normala Drupal installationer.

Samtliga Drupal installationer versionhanteras med Git dock utesluter vi settings.php och files mappen. Annars kan GIT repo växa något enormt vilket borgar för onödiga clone och push tider plus att våra production servrar har annan säkerhetslager gällande MySQL. Därför utesluter vi settings.php och genererar nya.

MySQL kan man ej versionhantera. Där använder vi oss av Drush och dess sql-sync. Filerna syncas med Drush rsync kommando.

Allt detta kan man koda ihop till en enkel script som gör att deployment från lokal-->stage-->prod går på några sekunder.

Sajter med användare som genererar eget innehåll kan vara lite knepigare att få till, eftersom det krävs inkrementell uppdatering av databaser men det är dock fullt möjligt.

För att "kopiera"

Tarnaurion's picture

För att "kopiera" funktionalitet utan flytta/skriva över hela databasen så kan man använda modulen http://drupal.org/project/features. Om man skapat nåt i en utvecklingsversion av sajten eller i en helt seperat sajt, så skapar Features-modulen en modul med de delar som du vill flytta.

Kolla in http://drupal.org/project/features för mer info.

För moduler och kod kan du

solipsist's picture

För moduler och kod kan du använda Git eller SVN. För databaser behöver du, precis som Tarnaurion skriver, använda Features. Detta är ett sätt att hantera configuration management. Features hjälper dig paketera dina vyer, innehållstyper och mycket mer och spara ned dem som moduler som du sedan kan versionshantera i Git och skicka mellan dev, staging och prod.

Utöver konfiguration behöver du också ta hänsyn till innehåll. I fallet med utvecklingsarbete är det kanske inte viktigast eftersom du främst vill sjösätta nya funktioner snarare än nytt innehåll. Skulle du även vilja flytta innehåll från dev kan du använda Deploy-modulen.

Greg hos oss på NodeOne ägnar halva sin arbetstid med arbete på att få med detta i Drupals kärna. Du kan läsa mer om det här:
http://nodeone.se/blogg/configuration-management-initiative

Sweden

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds: