Przejdź do zawartości

Jak przenieść Odoo na inny serwer? Przewodnik krok po kroku

9 czerwca 2026 przez

Przeniesienie Odoo na inny serwer to proces, który może być konieczny z różnych powodów - od modernizacji infrastruktury, przez zwiększenie wydajności, po zmianę dostawcy hostingu. Choć zadanie to może wydawać się skomplikowane, odpowiednie przygotowanie i przestrzeganie sprawdzonej procedury pozwoli na bezpieczną migrację bez utraty danych.

Przygotowanie do migracji Odoo

Przed rozpoczęciem procesu przenoszenia Odoo na inny serwer, kluczowe jest dokładne przygotowanie. Sprawdzenie wymagań systemowych dla Odoo na nowym serwerze to pierwszy krok, który zabezpieczy nas przed problemami kompatybilności.

Lista kontrolna przed migracją

Upewnij się, że masz przygotowane następujące elementy:

  • Dostęp administracyjny do obu serwerów (źródłowego i docelowego)
  • Informacje o wersji Odoo i zainstalowanych modułach
  • Listę niestandardowych modułów i dodatków wraz z ich wersjami
  • Kopię zapasową bazy danych PostgreSQL
  • Kopię katalogu filestore z załącznikami
  • Plik konfiguracyjny odoo.conf
  • Dokumentację wszystkich zewnętrznych integracji i API

Testowanie nowego środowiska

Nowy serwer powinien spełniać wszystkie wymagania systemowe dla Twojej wersji Odoo. Upewnij się, że:

  • System operacyjny jest aktualny i wspierany (zalecane: Ubuntu 22.04 LTS lub Debian 11/12)
  • Zainstalowana jest odpowiednia wersja PostgreSQL (dla Odoo 17-18: PostgreSQL 14-16, dla Odoo 19: PostgreSQL 16 lub nowsza)
  • Python jest w odpowiedniej wersji (Odoo 17+ wymaga Python 3.10 lub nowszego)
  • Dostępna jest wystarczająca przestrzeń dyskowa (zalecane minimum 2x rozmiar obecnych danych)
  • Zainstalowane są wszystkie wymagane zależności systemowe (wkhtmltopdf, biblioteki Python itp.)

Ważne: Zdecydowanie zaleca się przeprowadzenie próbnej migracji na środowisku testowym przed wykonaniem migracji produkcyjnej.

Krok 1: Instalacja Odoo na nowym serwerze

Pierwszym krokiem technicznym jest instalacja Odoo na nowym serwerze. Ważne jest, aby zainstalować dokładnie tę samą wersję Odoo, która działa na serwerze źródłowym - łącznie z tym samym numerem wydania (np. Odoo 17.0, a nie tylko Odoo 17). Różnice w wersjach mogą prowadzić do problemów z kompatybilnością bazy danych.

Po instalacji zainstaluj również wszystkie moduły niestandardowe w tych samych wersjach co na serwerze źródłowym, ale jeszcze nie uruchamiaj Odoo - najpierw przeniesiemy dane z obecnego serwera.

Krok 2: Kopia zapasowa bazy danych

Prawidłowe wykonanie kopii zapasowej bazy danych to najważniejszy element całego procesu. Na serwerze źródłowym zatrzymaj usługę Odoo, aby zagwarantować spójność danych:

sudo systemctl stop odoo

Następnie wykonaj dump bazy danych PostgreSQL:

sudo su - postgres
pg_dump -Fc nazwa_bazy > /tmp/odoo_backup.dump
exit

Parametr -Fc tworzy skompresowaną kopię w formacie custom, która jest bardziej wydajna przy większych bazach danych. Alternatywnie możesz użyć formatu SQL:

pg_dump nazwa_bazy > /tmp/odoo_backup.sql

Konfiguracja PostgreSQL na nowym serwerze

Na nowym serwerze skonfiguruj bazę danych PostgreSQL z odpowiednimi parametrami wydajności i bezpieczeństwa. Utwórz użytkownika bazy danych dla Odoo:

sudo su - postgres
createuser odoo -d -R -S -P
exit

Parametr -P pozwoli ustawić hasło podczas tworzenia użytkownika. Alternatywnie możesz ustawić hasło później:

sudo su - postgres
psql
ALTER USER odoo WITH PASSWORD 'silne_haslo';
\q
exit

Krok 3: Transfer danych na nowy serwer

Transfer plików można przeprowadzić na kilka sposobów. Najpopularniejszym jest użycie rsync lub scp.

Transfer bazy danych

Skopiuj plik dumpu bazy danych na nowy serwer:

scp /tmp/odoo_backup.dump uzytkownik@nowy_serwer:/tmp/

Na nowym serwerze przywróć bazę danych. Ważne: Przed przywróceniem bazy upewnij się, że Odoo jest wyłączone:

sudo systemctl stop odoo
sudo su - postgres
createdb -O odoo nazwa_bazy
pg_restore -d nazwa_bazy -O /tmp/odoo_backup.dump
exit

Parametr -O w pg_restore zapobiega próbom odtworzenia oryginalnych właścicieli obiektów, co mogłoby spowodować błędy.

Transfer katalogu filestore

Katalog filestore zawiera wszystkie pliki przesłane do Odoo (załączniki, obrazy produktów, dokumenty). Domyślnie znajduje się w ~/.local/share/Odoo/filestore/NAZWA_BAZY/ lub w lokalizacji określonej w pliku konfiguracyjnym jako data_dir.

Uwaga: Ścieżka filestore zawiera nazwę bazy danych jako podfolder. Jeśli zmienisz nazwę bazy podczas migracji, musisz odpowiednio zmienić nazwę tego podfolderu.

rsync -avz ~/.local/share/Odoo/filestore/nazwa_bazy/ uzytkownik@nowy_serwer:~/.local/share/Odoo/filestore/nazwa_bazy/

Parametry rsync:

  • -a - tryb archiwum (zachowuje uprawnienia i atrybuty)
  • -v - verbose (szczegółowe informacje)
  • -z - kompresja podczas transferu

Po skopiowaniu ustaw odpowiednie uprawnienia:

sudo chown -R odoo:odoo ~/.local/share/Odoo/filestore/
sudo chmod -R 750 ~/.local/share/Odoo/filestore/

Transfer modułów niestandardowych

Jeśli korzystasz z modułów zewnętrznych, musisz przenieść również katalog z dodatkami. Przeczytaj więcej o tym, jak zainstalować moduły zewnętrzne w Odoo.

rsync -avz /sciezka/do/custom-addons/ uzytkownik@nowy_serwer:/sciezka/do/custom-addons/

Upewnij się, że wszystkie zależności Pythona wymagane przez moduły niestandardowe są zainstalowane na nowym serwerze.

Krok 4: Konfiguracja Odoo na nowym serwerze

Skopiuj plik konfiguracyjny z obecnego serwera i dostosuj go do nowego środowiska. Konfiguracja pliku odoo.conf powinna uwzględniać nowe parametry serwera.

scp /etc/odoo.conf uzytkownik@nowy_serwer:/etc/odoo.conf

Edytuj plik konfiguracyjny na nowym serwerze, zwracając szczególną uwagę na:

  • db_host - może pozostać localhost jeśli PostgreSQL jest na tym samym serwerze
  • db_port - domyślnie 5432
  • db_user i db_password - użytkownik PostgreSQL
  • db_name - nazwa bazy danych (opcjonalnie, dla pojedynczej bazy)
  • db_filter - ważny parametr bezpieczeństwa, np. ^nazwa_bazy$
  • data_dir - ścieżka do katalogu filestore
  • addons_path - ścieżki do wszystkich katalogów z modułami (oddzielone przecinkami)
  • xmlrpc_port - port Odoo (domyślnie 8069)
  • proxy_mode - ustaw na True jeśli używasz nginx jako reverse proxy

Przykładowa sekcja pliku konfiguracyjnego:

[options]
db_host = localhost
db_port = 5432
db_user = odoo
db_password = silne_haslo
db_filter = ^nazwa_bazy$
data_dir = /home/odoo/.local/share/Odoo
addons_path = /opt/odoo/addons,/opt/odoo/custom-addons
xmlrpc_port = 8069
proxy_mode = True
logfile = /var/log/odoo/odoo.log
log_level = info

Krok 5: Uruchomienie Odoo na nowym serwerze

Po skonfigurowaniu wszystkich elementów możesz uruchomić Odoo. Zalecam najpierw testowe uruchomienie w trybie debug z bezpośrednim wskazaniem bazy danych:

odoo -c /etc/odoo.conf -d nazwa_bazy --logfile=/var/log/odoo/odoo.log --log-level=debug

Parametr -d nazwa_bazy gwarantuje, że Odoo połączy się z właściwą bazą danych. Sprawdź logi pod kątem błędów. Zwróć szczególną uwagę na:

  • Błędy połączenia z bazą danych
  • Brakujące zależności Python
  • Problemy z dostępem do filestore
  • Ostrzeżenia o brakujących modułach

Jeśli wszystko działa poprawnie, skonfiguruj Odoo jako usługę systemd, aby uruchamiała się automatycznie po restarcie serwera.

Weryfikacja działania systemu

Po uruchomieniu Odoo wykonaj następujące testy:

  • Zaloguj się na konto administratora
  • Sprawdź dostępność wszystkich zainstalowanych modułów
  • Zweryfikuj załączniki i dokumenty - sprawdź kilka losowych rekordów z załącznikami
  • Przetestuj kluczowe funkcje biznesowe (utworzenie oferty, faktury, zamówienia)
  • Sprawdź działanie zaplanowanych zadań (Ustawienia > Techniczne > Automatyzacja > Zaplanowane akcje)
  • Zweryfikuj integracje z systemami zewnętrznymi
  • Przetestuj wysyłanie e-maili
  • Sprawdź raporty i eksporty danych

Weryfikacja załączników: Możesz sprawdzić spójność załączników w bazie danych poprzez zapytanie SQL:

SELECT count(*) FROM ir_attachment WHERE store_fname IS NOT NULL;

Upewnij się, że liczba pasuje do liczby plików w katalogu filestore.

Krok 6: Konfiguracja infrastruktury

Dla profesjonalnego środowiska produkcyjnego zaleca się skonfigurowanie dodatkowych warstw zabezpieczeń i optymalizacji.

Reverse Proxy z Nginx

Skonfiguruj nginx jako reverse proxy dla Odoo, co zapewni lepszą wydajność, obsługę statycznych plików oraz dodatkową warstwę bezpieczeństwa.

Certyfikat SSL/HTTPS

Aby zabezpieczyć komunikację, skonfiguruj HTTPS/SSL dla Odoo. To szczególnie ważne jeśli system będzie dostępny przez internet. Certyfikaty Let's Encrypt są darmowe i łatwe w konfiguracji.

Krok 7: Przekierowanie ruchu na nowy serwer

Po pełnym przetestowaniu nowego serwera możesz przekierować ruch z obecnego serwera:

  • Zaktualizuj rekordy DNS wskazując na nowy adres IP
  • Opcjonalnie: skonfiguruj przekierowania na poziomie reverse proxy na starym serwerze
  • Monitoruj logi pod kątem problemów w pierwszych godzinach po przełączeniu
  • Sprawdź czy wszystkie domenalne adresy e-mail działają poprawnie

Pamiętaj, że propagacja DNS może zająć od kilku minut do 48 godzin, w zależności od ustawień TTL. Możesz zmniejszyć TTL na kilka dni przed migracją, aby przyspieszyć propagację.

Najlepsze praktyki przy migracji Odoo

Wykonaj migrację poza godzinami szczytu

Planuj przeniesienie Odoo na inny serwer w weekendy lub wieczory, gdy ruch użytkowników jest minimalny. To minimalizuje wpływ na działalność firmy. Poinformuj użytkowników z wyprzedzeniem o planowanej przerwie technicznej.

Przeprowadź próbną migrację

Przed migracją produkcyjną wykonaj pełną próbną migrację na środowisku testowym. To pozwoli zidentyfikować problemy i oszacować rzeczywisty czas przestoju.

Utrzymuj obecny serwer jako backup

Nie wyłączaj starego serwera od razu po migracji. Pozostaw go działającego przez co najmniej tydzień jako zabezpieczenie na wypadek nieprzewidzianych problemów. Przed wyłączeniem wykonaj finalną kopię zapasową.

Dokumentuj proces

Zapisuj wszystkie kroki, napotkane problemy i ich rozwiązania. Ta dokumentacja będzie cenna przy przyszłych migracjach i może służyć jako procedura disaster recovery.

Testuj wydajność

Po migracji monitoruj wydajność nowego serwera przez kilka dni. Zwróć uwagę na:

  • Czasy odpowiedzi aplikacji - czy są lepsze czy gorsze niż na starym serwerze
  • Obciążenie CPU i pamięci RAM - szczególnie w godzinach szczytu
  • Wykorzystanie przestrzeni dyskowej i szybkość I/O
  • Czasy wykonania zapytań do bazy danych - użyj logowania slow queries w PostgreSQL
  • Szybkość generowania raportów PDF

Rozwiązywanie typowych problemów

Problem z prawami dostępu do plików

Jeśli Odoo nie może odczytać filestore lub pojawia się błąd "Permission denied", upewnij się, że użytkownik systemowy Odoo ma odpowiednie uprawnienia:

sudo chown -R odoo:odoo ~/.local/share/Odoo/filestore/
sudo chmod -R 750 ~/.local/share/Odoo/filestore/

Sprawdź również uprawnienia do pliku sesji:

sudo chown -R odoo:odoo ~/.local/share/Odoo/sessions/
sudo chmod -R 750 ~/.local/share/Odoo/sessions/

Błędy połączenia z bazą danych

Sprawdź konfigurację pg_hba.conf w PostgreSQL, aby użytkownik Odoo miał dostęp do bazy:

sudo nano /etc/postgresql/16/main/pg_hba.conf

Dodaj linię (dostosuj wersję PostgreSQL do swojej instalacji):

local   all   odoo   md5

Następnie przeładuj konfigurację PostgreSQL:

sudo systemctl reload postgresql

Brakujące moduły lub błędy modułów

Jeśli po migracji niektóre moduły nie działają lub pojawiają się błędy, zaktualizuj listę modułów w trybie aktualizacji:

odoo -c /etc/odoo.conf -d nazwa_bazy -u all --stop-after-init

Dla konkretnych modułów:

odoo -c /etc/odoo.conf -d nazwa_bazy -u nazwa_modulu --stop-after-init

Uwaga: Opcja -u all może zająć dużo czasu przy dużych bazach danych. Rozważ aktualizację tylko problemowych modułów.

Błędy sesji użytkowników

Po migracji użytkownicy mogą mieć problemy z sesjami. Możesz wyczyścić sesje w bazie danych:

sudo su - postgres
psql nazwa_bazy
DELETE FROM ir_session;
\q
exit

Poproś użytkowników o wylogowanie i ponowne zalogowanie.

FAQ - Najczęściej zadawane pytania

Ile czasu zajmuje przeniesienie Odoo na inny serwer?

Czas migracji zależy od rozmiaru bazy danych i liczby plików. Dla małej instancji (kilka GB) proces może zająć 2-4 godziny. Większe instalacje z setkami GB danych mogą wymagać całego dnia lub dłużej. Kluczowy jest czas transferu danych między serwerami - przy dobrym łączu internetowym (100 Mbps+) można osiągnąć prędkość kilkadziesiąt MB/s. Sam czas przestoju systemu (gdy Odoo jest wyłączone) może być ograniczony do 1-3 godzin przy dobrym zaplanowaniu.

Czy muszę zatrzymać Odoo podczas migracji?

Tak, zatrzymanie Odoo jest konieczne podczas wykonywania kopii zapasowej bazy danych, aby zapewnić spójność danych. Możesz jednak zminimalizować przestój wykonując wstępną synchronizację plików (filestore, moduły) gdy system jeszcze działa, a następnie przeprowadzić finalną synchronizację różnic i migrację bazy z zatrzymaną usługą. To może skrócić czas niedostępności systemu do 30-60 minut. Również przywracanie bazy na nowym serwerze powinno odbywać się przy wyłączonym Odoo.

Co zrobić jeśli coś pójdzie nie tak podczas migracji?

Dlatego tak ważne jest pozostawienie starego serwera nietkniętego. Jeśli napotkasz problemy na nowym serwerze, możesz szybko wrócić do starej konfiguracji poprzez przekierowanie DNS z powrotem na obecny serwer (lub usunięcie przekierowania na reverse proxy). Zawsze wykonuj pełną kopię zapasową przed rozpoczęciem migracji i testuj nowe środowisko przed przekierowaniem ruchu produkcyjnego. Miej przygotowany plan rollback i testuj go na środowisku testowym.

Czy mogę zmienić wersję Odoo podczas migracji?

Nie jest to zalecane. Migracja na inny serwer i upgrade wersji Odoo to dwa oddzielne procesy, które nie powinny być łączone. Najpierw przenieś Odoo w tej samej wersji na nowy serwer, przetestuj działanie, a dopiero potem rozważ upgrade do nowszej wersji. Upgrade Odoo wymaga dodatkowych kroków, testowania i często aktualizacji modułów niestandardowych.

Podsumowanie

Przeniesienie Odoo na inny serwer to proces wymagający planowania i dokładności, ale przy odpowiednim przygotowaniu można go przeprowadzić bezpiecznie i efektywnie. Kluczowe elementy to wykonanie kompletnych kopii zapasowych, zachowanie spójności wersji oprogramowania, staranność w przenoszeniu wszystkich komponentów (baza danych, filestore, moduły, konfiguracja) oraz dokładne testowanie po migracji.

Pamiętaj o systematycznym podejściu: przygotowanie środowiska, migracja danych, konfiguracja systemu, obszerne testy funkcjonalne i finalnie przekierowanie ruchu. Każdy z tych etapów jest równie ważny dla sukcesu całego przedsięwzięcia. Nie pomijaj etapu próbnej migracji na środowisku testowym - to inwestycja czasu, która może zaoszczędzić wiele problemów w produkcji.

Dokumentuj każdy krok procesu i przygotuj plan awaryjnego powrotu do starej konfiguracji. Po migracji monitoruj system przez co najmniej tydzień, aby upewnić się, że wszystko działa zgodnie z oczekiwaniami.

Potrzebujesz pomocy w migracji Odoo na nowy serwer? Zespół ekspertów KK Innovations posiada bogate doświadczenie w przenoszeniu instancji Odoo między serwerami. Zajmiemy się całym procesem migracji - od planowania, przez wykonanie, po testy i wsparcie po wdrożeniu. Zapewniamy minimalny czas przestoju i gwarantujemy bezpieczeństwo Twoich danych. Skontaktuj się z nami, aby omówić szczegóły Twojego projektu i otrzymać profesjonalne wsparcie w zakresie infrastruktury Odoo.