Posted by siavashg on August 5, 2011 at 7:22pm
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
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.
Damir Hasakovic, Lixion
För att "kopiera"
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
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
Jakob Persson – Leancept – Results-only digital and marketing consultants – Personal blog