Odoo 20.0 FINAL pojawiło się po Odoo Experience w Brukseli (24–26 września 2026) i jest już dostępne w App Store. Zanim cokolwiek przeportowaliśmy, przeczytaliśmy rzeczywisty kod źródłowy (nie changelog ani blog osób trzecich), żeby wiedzieć, co psuje konektor działający dziś w Odoo 19. Oto co znaleźliśmy, wraz z plikiem i linią, w której to sprawdziliśmy.
Metoda: każdy wiersz tabeli pochodzi z uruchomienia ls, grep lub git log na /srv/odoo-fuente/odoo-20.0 i /srv/odoo-fuente/enterprise-20.0 (commity 17ff827a1 i e5186134, 26 i 27 września 2026), a nie z czytania o Odoo 20 gdzie indziej.
Cztery zmiany, które zweryfikowaliśmy
| Co znika | Co się dzieje, jeśli Twój moduł tego używa | Zweryfikowano w |
|---|---|---|
base_vat i base_iban | Moduł się nie zainstaluje, jeśli od nich zależy: walidacja NIF/IBAN została przeniesiona do rdzenia. | addons/ w kodzie źródłowym Odoo 20.0 FINAL |
ir.model.access i ir.rule | Łączą się w nowy model, ir.access. Pliki CSV z uprawnieniami w starym formacie nie są odczytywane. | odoo/addons/base/models/ir_access.py + odoo/upgrade_code/19.4-00-ir-access.py |
odoo.osv (cały pakiet) | from odoo.osv import expression zgłasza ModuleNotFoundError, a moduł się nie ładuje. | odoo/osv/ nie istnieje w kodzie źródłowym Odoo 20.0 FINAL |
Pole datas w załącznikach | ir.attachment.create({'datas': ...}) zgłasza AssertionError od 31 października 2026. Do tego czasu tworzył załącznik o rozmiarze 0, bez żadnego błędu, a podpisany plik PDF był pusty. | odoo/addons/base/models/ir_attachment.py:502 w kodzie źródłowym Odoo 20.0 z 2 listopada 2026 (wcześniej linia 535) |
Aktualizacja z 6 listopada 2026: do 31 października najniebezpieczniejsza była zmiana w załącznikach, bo nie zgłaszała żadnego wyjątku: konektor podpisu elektronicznego, który nadal zapisywał 'datas': base64..., instalował się bez problemów, przechodził smoke test i zapisywał podpisany plik PDF z rozmiarem 0. Od commita c06a07264bdb w Odoo („[FIX] base: remove fallback for datas”) ten create zgłasza AssertionError: _check_contents should handle that. Poprawka się nie zmienia: 'raw' z niezakodowanymi bajtami, co działa w Odoo 17, 18, 19 i 20.
Co sprawdzić przed migracją własnego konektora
grep -rn base_vat\|base_iban __manifest__.pywe wszystkich Twoich modułach: jeśli występuje wdepends, moduł się nie zainstaluje.grep -rn 'from odoo.osv import'w kodzie Python: każde wystąpienie trzeba zmienić nafrom odoo.fields import Domain.- Pliki
ir.model.access.csv: uruchomodoo-bin upgrade_code --script 19.4-00-ir-access, który konwertuje format, aktualizuje manifest i usuwa stary plik CSV (skrypt udostępniony przez samo Odoo). - Każde
'datas': base64.b64encode(...)zapisywane do załącznika: zmień na'raw': ..., które działa tak samo w Odoo 17, 18, 19 i 20 : nie trzeba czekać na portowanie, żeby to naprawić.
Jak testowaliśmy to my
Każdy nasz konektor, który trafia do Odoo 20, najpierw przechodzi przez prawdziwe Odoo 20.0 FINAL z Enterprise: instaluje się naprawdę, uruchamiana jest cała jego bateria testów (z co najmniej jednym testem i żadnym pominiętym) i dopiero gdy wszystko jest zielone, jest publikowany. Instalacja bez błędów nie wystarcza: awarię w załącznikach wykryje na przykład wyłącznie test, który tworzy dokument (do 31 października taki, który dodatkowo go otwierał), nigdy czysty log instalacji.
Przy takim kryterium mamy już 9 konektorów opublikowanych w Odoo 20 (szczegóły w tym artykule), a reszta katalogu pojawia się moduł po module, w miarę jak przechodzi pełną baterię testów, a nie wszystko naraz.
Najczęstsze pytania
Czy Odoo 20 można już instalować na produkcji?
Odoo 20.0 FINAL jest opublikowane i dostępne w App Store. Zanim zmigrujesz wdrożenie z własnymi konektorami, sprawdź, czy zależą od base_vat, base_iban lub odoo.osv oraz czy zapisują załączniki za pomocą 'datas'.
Dlaczego konektor, który się poprawnie instaluje, może mimo to zawieść w Odoo 20?
Ponieważ instalacja sprawdza tylko, czy manifest i widoki się ładują. Zmiana w załącznikach (pole datas) nie wychodzi na jaw podczas instalacji: od 31 października 2026 zgłasza AssertionError przy tworzeniu rekordu, a do tego czasu nie zgłaszała żadnego błędu i dokument zapisywał się pusty. Wykryje to tylko test, który przechodzi przez ten kod.
Przydatne linki w FlexigoTech
Co robimy w tej sprawie
Czy Twój konektor od nas zależy? Powiemy Ci, czy Odoo 20 go psuje
Napisz do nas z nazwą modułu, a powiemy Ci, na podstawie rzeczywistego kodu, czy dotyczy go któraś z tych czterech zmian. Napisz na comercial@flexigobe.com lub zadzwoń pod numer +34 616 809 504.

