Przejdź do zawartości

Jak skonfigurować bazę danych PostgreSQL dla Odoo?

1 czerwca 2026 przez

PostgreSQL jest sercem każdej instalacji Odoo. Prawidłowa konfiguracja bazy danych ma kluczowe znaczenie dla wydajności, bezpieczeństwa i stabilności całego systemu ERP. W tym przewodniku pokażemy, jak profesjonalnie skonfigurować bazę danych PostgreSQL dla Odoo.

Dlaczego PostgreSQL jest niezbędny dla Odoo?

Odoo wykorzystuje PostgreSQL jako swoją wyłączną bazę danych. To potężny, otwartoźródłowy system zarządzania relacyjnymi bazami danych, który oferuje zaawansowane funkcje, wysoką wydajność i niezawodność. Bez prawidłowo skonfigurowanej instancji PostgreSQL, Odoo po prostu nie będzie działać.

PostgreSQL zapewnia Odoo wsparcie dla złożonych zapytań, transakcji ACID, wielowersyjność (MVCC) oraz szeroki zakres typów danych, w tym JSON, który jest intensywnie wykorzystywany przez Odoo. To właśnie te cechy sprawiają, że jest idealnym wyborem dla systemu ERP obsługującego dane biznesowe.

Instalacja PostgreSQL

Instalacja na systemach Linux (Ubuntu/Debian)

Przed rozpoczęciem konfiguracji bazy danych dla Odoo, należy zainstalować serwer PostgreSQL. Na systemach opartych na Ubuntu lub Debianie proces jest prosty:

sudo apt update
sudo apt install postgresql postgresql-client -y

Po instalacji usługa PostgreSQL uruchomi się automatycznie. Możesz sprawdzić jej status używając komendy:

sudo systemctl status postgresql

Ważne: Upewnij się, że instalujesz odpowiednią wersję PostgreSQL. Odoo 17 wymaga PostgreSQL w wersji 12 do 16, podczas gdy Odoo 16 wspiera wersje 10 do 15. Zalecana jest instalacja PostgreSQL 14 lub nowszej dla optymalnej wydajności.

Instalacja na systemach Windows

Na systemach Windows należy pobrać instalator PostgreSQL ze strony oficjalnej. Po pobraniu, uruchom instalator i postępuj zgodnie z instrukcjami kreatora. Podczas instalacji zapamiętaj hasło administratora (postgres), które będzie potrzebne później.

Jeśli instalujesz Odoo na Windows, zapoznaj się z naszym przewodnikiem: Jak zainstalować Odoo na Windows? Przewodnik krok po kroku.

Tworzenie użytkownika PostgreSQL dla Odoo

Odoo wymaga dedykowanego użytkownika PostgreSQL z odpowiednimi uprawnieniami. Ze względów bezpieczeństwa, nie należy używać konta superużytkownika postgres dla połączeń aplikacji.

Krok 1: Przełączenie na użytkownika postgres

W systemach Linux, przełącz się na użytkownika systemowego postgres:

sudo su - postgres

Krok 2: Utworzenie nowego użytkownika

Utwórz nowego użytkownika PostgreSQL dla Odoo. Nazwa użytkownika powinna odpowiadać nazwie użytkownika systemowego, który będzie uruchamiał Odoo:

createuser -d -R -S odoo

Parametry oznaczają:

  • -d: użytkownik może tworzyć bazy danych (wymagane, aby Odoo mógł tworzyć nowe bazy przez interfejs webowy)
  • -R: użytkownik nie może tworzyć nowych ról
  • -S: użytkownik nie jest superużytkownikiem

Alternatywnie, możesz utworzyć użytkownika z hasłem używając interfejsu psql:

psql
CREATE USER odoo WITH PASSWORD 'silne_haslo' CREATEDB;
\q

Krok 3: Instalacja wymaganych rozszerzeń PostgreSQL

Odoo wymaga kilku rozszerzeń PostgreSQL dla pełnej funkcjonalności. Zaloguj się jako postgres i włącz niezbędne rozszerzenia:

sudo su - postgres
psql
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE EXTENSION IF NOT EXISTS unaccent;
\q

Rozszerzenie pg_trgm jest wymagane dla wyszukiwania pełnotekstowego w Odoo, a unaccent umożliwia wyszukiwanie bez uwzględniania znaków diakrytycznych.

Konfiguracja PostgreSQL dla optymalnej wydajności Odoo

Domyślna konfiguracja PostgreSQL nie jest zoptymalizowana pod kątem Odoo. Aby zapewnić najlepszą wydajność, należy dostosować kilka parametrów.

Edycja pliku postgresql.conf

Plik konfiguracyjny PostgreSQL zwykle znajduje się w lokalizacji:

  • Ubuntu/Debian: /etc/postgresql/[wersja]/main/postgresql.conf
  • Windows: C:\Program Files\PostgreSQL\[wersja]\data\postgresql.conf

Otwórz plik jako administrator i dostosuj następujące parametry:

shared_buffers = 512MB
effective_cache_size = 2GB
maintenance_work_mem = 128MB
work_mem = 16MB
max_connections = 100
wal_buffers = 16MB
checkpoint_completion_target = 0.9
random_page_cost = 2.0

Te wartości są odpowiednie dla serwera z 4GB RAM. Dla większych serwerów, możesz proporcjonalnie zwiększyć te wartości. Parametr shared_buffers powinien wynosić około 25% dostępnej pamięci RAM, a effective_cache_size około 50-75%.

Parametr random_page_cost ustawiony na 2.0 jest optymalny dla dysków SSD. Dla tradycyjnych dysków HDD pozostaw wartość domyślną 4.0.

Konfiguracja autovacuum

Autovacuum jest kluczowy dla utrzymania wydajności bazy danych Odoo w czasie. Odoo generuje dużo transakcji, więc regularne czyszczenie jest niezbędne:

autovacuum = on
autovacuum_max_workers = 3
autovacuum_naptime = 1min
autovacuum_vacuum_scale_factor = 0.05
autovacuum_analyze_scale_factor = 0.02

Restart usługi PostgreSQL

Po dokonaniu zmian, zrestartuj PostgreSQL:

sudo systemctl restart postgresql

Konfiguracja bezpieczeństwa

Plik pg_hba.conf

Plik pg_hba.conf kontroluje, kto może łączyć się z bazą danych. Znajduje się w tym samym katalogu co postgresql.conf.

Dla lokalnych instalacji Odoo, dodaj następującą linię:

local   all   odoo   md5

Dla zdalnych połączeń (tylko w bezpiecznych sieciach!):

host    all   odoo   192.168.1.0/24   md5

Zastąp zakres IP odpowiednim dla Twojej sieci. Dla środowisk produkcyjnych zalecane jest użycie SSL:

hostssl all   odoo   192.168.1.0/24   md5

Po zmianach przeładuj konfigurację PostgreSQL:

sudo systemctl reload postgresql

Tworzenie bazy danych dla Odoo

Odoo automatycznie tworzy bazę danych podczas pierwszej konfiguracji przez interfejs webowy. Ważne: Aby móc tworzyć bazy danych przez interfejs Odoo, musisz ustawić parametr admin_passwd (master password) w pliku konfiguracyjnym Odoo.

Możesz jednak utworzyć bazę ręcznie:

createdb -O odoo nazwa_bazy

Parametr -O odoo ustawia użytkownika odoo jako właściciela bazy danych.

Po utworzeniu bazy, upewnij się, że rozszerzenia są dostępne:

psql -d nazwa_bazy -c "CREATE EXTENSION IF NOT EXISTS pg_trgm;"
psql -d nazwa_bazy -c "CREATE EXTENSION IF NOT EXISTS unaccent;"

Konfiguracja połączenia Odoo z PostgreSQL

Po skonfigurowaniu PostgreSQL, musisz poinformować Odoo, jak połączyć się z bazą danych. Odbywa się to poprzez plik konfiguracyjny Odoo (odoo.conf).

Dodaj lub zmodyfikuj następujące parametry:

db_host = localhost
db_port = 5432
db_user = odoo
db_password = silne_haslo
db_name = False
db_maxconn = 64
admin_passwd = bardzo_silne_master_haslo

Parametr db_name = False pozwala Odoo zarządzać wieloma bazami danych. Jeśli pracujesz tylko z jedną bazą, możesz podać jej nazwę.

Parametr db_maxconn określa maksymalną liczbę połączeń do bazy danych na proces Odoo. Wartość 64 jest odpowiednia dla większości instalacji. Upewnij się, że max_connections w PostgreSQL jest wyższa niż db_maxconn × liczba workers.

Parametr admin_passwd (master password) jest wymagany do zarządzania bazami danych przez interfejs webowy Odoo - tworzenia, duplikowania, usuwania oraz backupu baz danych.

Jeśli instalujesz Odoo na Ubuntu, sprawdź nasz szczegółowy przewodnik: Jak zainstalować Odoo na Ubuntu? Kompletny przewodnik krok po kroku.

Testowanie połączenia

Aby przetestować, czy wszystko działa prawidłowo, uruchom Odoo i sprawdź logi. Jeśli połączenie jest prawidłowe, powinieneś zobaczyć komunikaty o pomyślnym połączeniu z bazą danych.

Możesz również przetestować połączenie ręcznie:

psql -U odoo -h localhost -d postgres

Jeśli możesz się zalogować (i podać hasło jeśli je ustawiłeś), konfiguracja jest poprawna.

Backup i utrzymanie bazy danych

Regularne tworzenie kopii zapasowych jest kluczowe dla bezpieczeństwa danych biznesowych. PostgreSQL oferuje narzędzie pg_dump:

pg_dump -U odoo -F c nazwa_bazy > backup.dump

Parametr -F c tworzy backup w formacie custom, który jest skompresowany i umożliwia selektywne przywracanie.

Przywracanie z kopii zapasowej:

pg_restore -U odoo -d nazwa_bazy -c backup.dump

Parametr -c czyści istniejące obiekty przed przywróceniem, co zapobiega konfliktom.

Ważne: Backup bazy danych to tylko część kopii zapasowej Odoo. Musisz również zabezpieczyć katalog filestore, który zawiera załączniki i pliki. Domyślnie znajduje się w ~/.local/share/Odoo/filestore/nazwa_bazy (Linux) lub w katalogu danych Odoo (Windows).

Pełny backup Odoo powinien obejmować:

  • Dump bazy danych PostgreSQL
  • Katalog filestore
  • Plik konfiguracyjny odoo.conf
  • Ewentualne niestandardowe moduły

Rozważ automatyzację backupów za pomocą cron (Linux) lub Harmonogramu zadań (Windows). Przykładowy skrypt cron dla codziennego backupu o 2:00:

0 2 * * * pg_dump -U odoo -F c nazwa_bazy > /backup/odoo_$(date +\%Y\%m\%d).dump

Monitorowanie i optymalizacja wydajności

Regularne monitorowanie wydajności PostgreSQL jest kluczowe dla utrzymania optymalnej pracy Odoo. Możesz użyć narzędzia pgBadger do analizy logów PostgreSQL i identyfikacji wolnych zapytań.

Włącz logowanie wolnych zapytań w postgresql.conf:

log_min_duration_statement = 1000  # loguj zapytania dłuższe niż 1 sekunda
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h '
log_checkpoints = on
log_connections = on
log_disconnections = on
log_lock_waits = on

Alternatywa: Instalacja z Dockerem

Jeśli chcesz uniknąć ręcznej konfiguracji PostgreSQL, rozważ użycie Dockera. Docker automatycznie konfiguruje PostgreSQL wraz z Odoo w izolowanych kontenerach. Zobacz nasz przewodnik: Jak zainstalować Odoo za pomocą Dockera?

FAQ - Najczęściej zadawane pytania

Czy mogę używać innej bazy danych niż PostgreSQL dla Odoo?

Nie, Odoo wymaga wyłącznie PostgreSQL. System został zaprojektowany specjalnie do pracy z PostgreSQL i wykorzystuje specyficzne funkcje tej bazy danych, takie jak JSONB, tablice, i zaawansowane indeksowanie. Nie obsługuje innych systemów zarządzania bazami danych, takich jak MySQL, MariaDB czy Microsoft SQL Server.

Jaką wersję PostgreSQL powinienem zainstalować dla Odoo?

Zalecana wersja zależy od wersji Odoo:

  • Odoo 17: PostgreSQL 12, 13, 14, 15 lub 16 (zalecana 14 lub nowsza)
  • Odoo 16: PostgreSQL 10, 11, 12, 13, 14 lub 15 (zalecana 12 lub nowsza)
  • Odoo 15: PostgreSQL 10, 11, 12, 13 lub 14

Zawsze sprawdzaj oficjalną dokumentację Odoo dla aktualnych wymagań. Unikaj używania wersji PostgreSQL starszych niż 12, ponieważ mogą występować problemy z kompatybilnością i wydajnością.

Jak mogę zresetować hasło użytkownika PostgreSQL dla Odoo?

Zaloguj się jako użytkownik postgres i użyj komendy SQL:

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

Następnie zaktualizuj hasło w pliku konfiguracyjnym Odoo (odoo.conf) w parametrze db_password i zrestartuj usługę Odoo:

sudo systemctl restart odoo

Czy potrzebuję rozszerzeń PostgreSQL dla Odoo?

Tak, Odoo wymaga co najmniej dwóch rozszerzeń PostgreSQL:

  • pg_trgm - niezbędne dla funkcji wyszukiwania pełnotekstowego i wydajności zapytań z operatorem LIKE
  • unaccent - umożliwia wyszukiwanie bez uwzględniania znaków diakrytycznych (np. wyszukiwanie "cafe" znajdzie również "café")

Bez tych rozszerzeń Odoo może nie działać poprawnie lub będzie znacznie wolniejsze.

Podsumowanie

Prawidłowa konfiguracja bazy danych PostgreSQL dla Odoo jest fundamentem stabilnego i wydajnego systemu ERP. Postępując zgodnie z tym przewodnikiem, utworzyłeś bezpieczne środowisko bazodanowe zoptymalizowane pod kątem potrzeb Odoo. Pamiętaj o:

  • Regularnych backupach (zarówno bazy danych, jak i filestore)
  • Monitorowaniu wydajności i analizie wolnych zapytań
  • Aktualizowaniu zarówno PostgreSQL, jak i Odoo do najnowszych kompatybilnych wersji
  • Stosowaniu zasad bezpieczeństwa, szczególnie w środowiskach produkcyjnych
  • Ustawieniu master password dla bezpiecznego zarządzania bazami

Potrzebujesz pomocy z konfiguracją Odoo?

Konfiguracja PostgreSQL i Odoo może być wyzwaniem, szczególnie dla złożonych środowisk produkcyjnych. KK Innovations specjalizuje się we wdrożeniach Odoo i może pomóc w profesjonalnej konfiguracji, optymalizacji i utrzymaniu Twojego systemu ERP. Skontaktuj się z nami, aby dowiedzieć się, jak możemy wspierać Twój biznes!