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.
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ą. –
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
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