2011-04-27 12 views
7

Jestem w sytuacji, w której zostałem oskarżony o złożenie wniosku lub rozszerzenia do Umbraco, które sprawia, że ​​użytkownicy zaplecza mogą przeprowadzić migrację swoich zmian na stronie deweloperskiej do strona na żywo. Ta migracja ma się odbywać raz dziennie lub gdy użytkownicy backendu naciskają przycisk w zapleczu.Migracja danych Umbraco z witryny programistycznej do programowej witryny na żywo

Jestem świadomy, że Umbraco oferuje to w pakiecie Courier, ale najwyraźniej nie działa wystarczająco dobrze w tym przypadku.

Jeszcze kilka szczegółów:

Rozwój i na żywo w miejscu oba znajdują się na tym samym serwerze i tak robić swoje bazy danych. Dane będą po prostu musiały być przenoszone z jednego folderu do drugiego i tym samym z tabelami w bazie danych.

Jak widzę, istnieją dwie metody radzenia sobie z tym.

1) Wykonuje się pełną migrację, w której zasadniczo wykonuje się przerwanie istniejącej bazy danych i aktualizuje ją do nowej wersji. Następnie kopiujesz wszystkie potrzebne pliki.

2) Tworzysz pakiet zawierający typy dokumentów i tak zmieniłeś na swojej stronie programisty i załadowałeś ten pakiet na żywą witrynę.

Problem z numerem 1 polega na tym, że po dokonaniu przelewu trzeba ponownie opublikować całą witrynę. O ile zrozumiałem, możesz to zrobić za pomocą usługi sieciowej, ale wolałbym, gdybym mógł zamiast tego użyć aplikacji konsolowej.

Moje pytanie brzmi zatem:

Czy istnieje sposób, aby tworzyć pakiety programowe i załadować je w ten sam sposób lub co byłoby najlepszym sposobem osiągnięcia tego migrację programowo?

Wszelkie sugestie będą mile widziane, jak ja niby ze stratą sposobu na to :)

EDIT

skończyło się faktycznie robi kompletne odzwierciedlenie w sensie zrobienia, że użyłem Robocopy do przeniesienia wszystkich plików, które zostały zmienione w folderach, a następnie zrobiłem kopię zapasową witryny programistycznej za pomocą polecenia SQL, a następnie przywróciłem ją do żywej bazy danych za pomocą polecenia RESTORE SQL.

Kilka ustawień należy wykonać w poleceniach SQL, ale działa płynnie, a całkowity transfer zajmuje do 10 sekund w zależności od liczby plików, które zostały zmienione.

Ostatnia rzecz. Jeśli chcesz, aby zmiany były widoczne, musisz przeładować Umbraco. Można to zrobić, modyfikując plik web.config, ręcznie lub ustawiając programowo LastWriteTime.

Odpowiedz

4

Zawsze możesz utworzyć kontrolę użytkownika, która zajmie się ponownym opublikowaniem całej witryny, możesz ją wywołać z poziomu aplikacji konsoli.

Można również dołączyć do programu the Courier 2 beta, który jest rzeczywiście wystarczająco dobry (w przypadku funkcji, nie przetestowałem go samodzielnie).

Inną trasą może być zaoferowanie wszystkich węzłów jako kanału xml i użycie funkcji planowania CMSImport do automatycznej migracji węzłów.

To jest trudne, istnieje wiele opcji i jeszcze nie ma srebrnej kuli. Mam nadzieję, że Courier 2 będzie idealny i niecierpliwie czekam na jego wydanie.

+0

Ale jak poradzisz sobie z migracją węzłów w bazie danych? Jeśli inni patrzą na odpowiedź, musielibyście śledzić identyfikatory nowych stron, aby nie publikować przypadkowo stron, których tak naprawdę nie chcecie opublikować, jeśli takie istnieją. –

+0

Zaczynasz z 2 identycznymi bazami danych. Następnie, gdy umieścisz jednego z nich w środowisku na żywo, wyzeruj wszystkie tabele, które się zmienią (przepraszam, nie wiem, które z nich się zmienią), aby zacząć od naprawdę wysokiego materiału siewnego. Istniejącą zawartość można następnie nadpisać (ten sam identyfikator) nową zawartość w źródłowej bazie danych można kopiować bez ingerencji w istniejącą zawartość. – sebastiaan

+0

FYI: Szukałem srebrnej kuli i jest to tak blisko, jak to było, po prostu bardzo ciężko to zrobić w Umbraco i nie znam wielu ludzi, którzy mają udaną zautomatyzowaną strategię. Courier 2 ma sprawić, że wszystko będzie naprawdę łatwe. – sebastiaan

Powiązane problemy