WikiPrint - from Polar Technologies

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ć:

pg_dump -U postgres -f edokumenty.sql edokumenty

psql -U postgres -f edokumenty.sql edokumenty

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.

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 :

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:

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ę

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 .

Jeżeli na poprzednim serwerze posiadamy posiadamy nie

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.