= Migracja z !Windows/Linux na Linux = Poniżej opisane są najważniejsze rzeczy które należy wziąć pod uwagę przy przenoszeniu systemu z !Windows/Linux na Linux. Migracja będzie wymagać: * skopiowania plików systemu C:\Program Files\!BetaSoft\eDokumenty\public_html do /home/edokumenty/public_html, * eksportu bazy {{{ #!sh pg_dump -U postgres -f edokumenty.sql edokumenty }}} * importu bazy na Linux ''{{{psql -U postgres -f edokumenty.sql edokumenty}}}'' * ustawienia właściwych praw do pliku (opisane w innym miejsu wiki) * przeniesienia plików katalogu ''files'' * przeniesienia plików repozytorium SVN, które jest szerzej opisane poniżej. === Czynności wstępne === Proces migracji danych na system Linux należy rozpocząć od przygotowania środowiska, czyli zainstalowania Apache'a, PHP, PostgreSQL oraz innych bibliotek w odpowiedniej wersji. Problem ten opisuje odpowiedni artykuł. === Migracja katalogu public_html === Jeżeli posiadamy przygotowany system, należy w pierwszej kolejności przekopiować system eDokumentów, czyli całego katalog '''public_html'''. Z poziomu Windows-a można wysłać z poziomu "starej" maszyny na nowy serwer przez SSH (używając narzędzi graficznych np. !FileZilla, WinSCP lub innych). Pliki należy wrzucić do katalogu {{{/home/edokumenty/}}} nadpisując istniejący katalog public_html. Zanim jednak rozpoczniemy prace, to sugeruje się, aby wyczyścić katalog {{{public_html/apps/edokumenty/var/tmp}}} na dotychczasowym serwerze edokumentów. Znajdują się tam pliki tymczasowej, których kopiowanie nie ma sensu. Jeżeli migrujemy z linuksa to z dowolnej maszyny możemy wykorzystać polecenie rsync (jako użytkownik root) np. {{{ #!sh rsync -azP root@10.0.0.5:/home/edokumenty/public_html/ /home/edokumenty/public_html }}} W powyższym przykładzie kopiowanie odbywa sie konsoli "nowej" - docelowej maszyny, z której polecenie ''rsync'' pobiera dane. Należy pamiętać o ustawieniu po skończonym procesie uprawnień do katalogów : * public_html * files * maildir * repos * repository Po przekopiowaniu systemu należy przejść dalej do kopiowania plików i repozytorium === Kopiowanie plików === Kopiowanie plików należy wykonać korzystając z narzędzia rsync: {{{ #!sh rsync -azP root@10.0.0.5:/home/edokumenty/files/ /home/edokumenty/files }}} Kopiowanie może zająć nieco czasu :-) === Przenoszenie repozytorium === Na Windows przed wykonaniem zrzutu sprawdzamy integralność repozytorium funkcją "Narzędzia > Integralność repozytorium" Co się da naprawiamy z eDokumenty. Resztę można ręcznie: {{{ su - www-data cd /home/edokumenty/ mkdir repository }}} Następnie patrząc na listę * te pliki które mają poczatek od ? dodajemy do repozytorium czyli ''svn add '' * te które maja literkę A zatwierdzamy czyli comitujemy ''svn ci -m "" '' Następnie wykonujemy zrzut: {{{ @set edok_dir=C:\Program Files\BetaSoft\eDokument svnadmin dump "%edok_dir%\repo" > repos.dump }}} Następnie kopiujemy plik repos.dump na serwer z Linux i umieszczamy w katalogu ''/home/edokumenty''. Następnie umożliwiamy chwilowy zapis użytkownikowi www-data do katalogu /home/edokumenty i przechodzimy na usera www-data i zakładamy repozytorium: {{{ #chmod o+w /home/edokumenty #su - www-data $cd /home/edokumenty $svnadmin create repos }}} Następnie nadal z użytkownika www-data zaimportujemy pliki do repozytorium. {{{ cd /home/edokumenty svnadmin load repos < repos.dump }}} W tym momencie powinny pojawiać się komunikaty z polecenia load, zatwierdzam wersję 1, 2, 3... itd. Następnie możemy pobrać zawartość repozytorium do lokalnej kopii umieszczonej w sąsiednim katalogu ''/home/edokumenty/repository''. Wykonujemy to poleceniem checkout (w skrócie ''co''). {{{ cd /home/edokumenty/repository svn co file:///home/edokumenty/repos . }}} Polecenie to pobiera do katalogu /home/edokumenty/repository zawartosć bazy SVN. Polecenie powinno zwracać dla każdego dodawanego pliku informację Pobieram 2009/09... W efekcie listując zawartośc repository widzimy katalogi 2008, 2009, 2010 itp. Jeżeli na źródłowym serwerze po wpisaniu komendy pojawią się nie zkomitowane dokumenty {{{ su - www-data cd /home/edokumenty/reposioty svn st }}} Należy przed przeniesieniem plików wykonać polecenie usunięcia plików .svn {{{ # Wyszukiwanie find . -name .svn # Usuwanie find . -name .svn -type d -print0 | xargs -0 rm -r -- }}} Polecenie to pobiera do katalogu /home/edokumenty/repository zawartosć bazy SVN. Polecenie powinno zwracać dla każdego dodawanego pliku informację Pobieram 2009/09... W efekcie listując zawartośc repository widzimy katalogi 2008, 2009, 2010 itp. GOTOWE! Gratulacje dobrej decyzji. Ps. Dla posiadaczy starszych wersji systemu < 2.0 należy zwrócić uwagę czy struktura katalogów zaczynała się od repository_2 czy samo repository i odpowiednio zmodyfikować ścieżki.