Skip to Content
Upgrade step

Odoo 18 to 19: what changed

Community + Enterprise Community + Enterprise modules. 1,774 models in Odoo 18, 1,944 in Odoo 19.

297models added
127models removed
2,606fields added
1,042fields removed
49renames
41field type changes
1,126views removed
113modules removed

Breaking changes to know first

groups_id renamed to group_ids

Odoo 19 renamed groups_id to group_ids on users, menus, actions and views.

What to do: Replace groups_id with group_ids (on res.users use all_group_ids to include implied groups).

hr.contract merged into hr.version

Odoo 19 merged employee contracts (hr.contract) into employee versions (hr.version).

What to do: Use env['hr.version'] / employee.version_id; the contract fields now live on hr.version.

read_group() deprecated

read_group() is deprecated in Odoo 19 (and changes signature again in Odoo 20).

What to do: Use _read_group() in server code or formatted_read_group() for UI-style results.

Also

Python modules: the _sql_constraints class attribute is ignored from Odoo 19 (use models.Constraint).

Renamed models and fields

Odoo 18Odoo 19Kind
hr.contract hr.version model
res.users.groups_id res.users.group_ids field
res.groups.users res.groups.user_ids field
ir.ui.menu.groups_id ir.ui.menu.group_ids field
ir.ui.view.groups_id ir.ui.view.group_ids field
ir.actions.act_window.groups_id ir.actions.act_window.group_ids field
ir.actions.server.groups_id ir.actions.server.group_ids field
48 more field renames detected from matching names and types (likely, not confirmed)
ModelOdoo 18Odoo 19Confidence
hr.employee bank_account_idprimary_bank_account_id possible
hr.employee l10n_hk_autopay_emall10n_hk_autopay_email likely
res.config.settings allow_out_of_stock_orderdefault_allow_out_of_stock_order possible
res.config.settings available_thresholddefault_available_threshold possible
res.config.settings module_delivery_fedexmodule_delivery_fedex_rest possible
res.config.settings module_delivery_upsmodule_delivery_ups_rest possible
res.config.settings module_delivery_uspsmodule_delivery_usps_rest possible
res.config.settings show_availabilitydefault_show_availability possible
res.users groups_idgroup_ids confirmed
res.users can_editcan_edit_role possible
pos.payment.method paytm_middpopay_mid likely
pos.payment.method paytm_test_modedpopay_test_mode likely
pos.payment.method paytm_tiddpopay_tid likely
pos.payment.method viva_wallet_api_keyviva_com_api_key likely
pos.payment.method viva_wallet_bearer_tokenviva_com_bearer_token likely
pos.payment.method viva_wallet_client_idviva_com_client_id likely
pos.payment.method viva_wallet_client_secretviva_com_client_secret likely
pos.payment.method viva_wallet_latest_responseviva_com_latest_response likely
pos.payment.method viva_wallet_merchant_idviva_com_merchant_id likely
pos.payment.method viva_wallet_terminal_idviva_com_terminal_id likely
pos.payment.method viva_wallet_test_modeviva_com_test_mode likely
pos.payment.method viva_wallet_webhook_endpointviva_com_webhook_endpoint likely
pos.payment.method viva_wallet_webhook_verification_keyviva_com_webhook_verification_key likely
stock.move group_idproduction_group_id possible
stock.move l10n_in_ewaybill_idl10n_in_ewaybill_ids likely
stock.picking group_idproduction_group_id possible
stock.picking l10n_in_ewaybill_idl10n_in_ewaybill_ids likely
sale.order.line product_uomproduct_uom_id possible
sale.order.line tax_idtax_ids likely
ir.actions.server groups_idgroup_ids confirmed
res.groups usersuser_ids confirmed
stock.warehouse.orderpoint vendor_ideffective_vendor_id possible
purchase.order.line product_uomproduct_uom_id possible
product.product image_fetch_pendingis_image_fetch_pending possible
purchase.order notesnote likely
mail.message link_preview_idsmessage_link_preview_ids possible
hr.appraisal skill_idsappraisal_skill_ids possible
product.pricelist.item product_uomproduct_uom_name possible
project.milestone product_uomproduct_uom_id possible
ir.actions.act_window groups_idgroup_ids confirmed
ir.ui.view groups_idgroup_ids confirmed
sale.report product_uomproduct_uom_id possible
ir.actions.report groups_idgroup_ids likely
ir.ui.menu groups_idgroup_ids confirmed
product.supplierinfo product_uomproduct_uom_id possible
purchase.report product_uomproduct_uom_id possible
sale.rental.report product_uomproduct_uom_id possible
website.page.properties groups_idgroup_ids likely

Models removed in Odoo 19 (127)

Grouped by the module that defined them in Odoo 18. E = Enterprise module.

account

account_accountant

account_accountant_batch_payment

account_disallowed_expenses

account_disallowed_expenses_fleet

account_edi_ubl_cii

account_invoice_extract

account_peppol

base

bus

delivery_fedex_certified

helpdesk_timesheet

hr

hr_appraisal

hr_attendance

hr_contract

hr_contract_reports

hr_expense

hr_expense_extract

hr_payroll

hr_recruitment

hr_recruitment_skills

hr_skills

im_livechat

l10n_ae_hr_payroll

l10n_be_hr_payroll

l10n_be_hr_payroll_sd_worx

l10n_be_reports

l10n_be_reports_post_wizard

l10n_ch_hr_payroll

l10n_ch_hr_payroll_elm_transmission

l10n_cl_edi

l10n_dk_rsu

l10n_eg_hr_payroll

l10n_es_reports

l10n_es_reports_modelo130

l10n_id_efaktur

l10n_in_enet_batch_payment

l10n_in_reports

l10n_in_reports_gstr

l10n_in_reports_tds_tcs

l10n_in_withholding

l10n_it_xml_export

l10n_ke_hr_payroll

l10n_mx_edi_stock

l10n_my_edi

l10n_ng_reports

l10n_nl_intrastat

l10n_nl_reports

l10n_nl_reports_sbr

l10n_nl_reports_sbr_icp

l10n_nl_reports_sbr_status_info

l10n_nl_reports_vat_pay_wizard

l10n_pl_reports_vat_eu

l10n_sa_hr_payroll

l10n_us_reports

mail

membership

mrp

mrp_account_enterprise

partner_autocomplete

payment

pos_hr

pos_preparation_display

product

quality_control

sale

sale_edi_ubl

sale_management

sale_renting

sale_renting_sign

sale_subscription

sale_timesheet

sign

sms

snailmail

stock

stock_account

stock_delivery

timesheet_grid

uom

web_editor

website_event_meet

website_jitsi

Models added in Odoo 19 (297)

Modules with the most new models:

esg 11 l10n_be_reports 11 account_reports 9 l10n_es_reports_2025 8 esg_csrd 7 pos_enterprise 7 ai 6 hr_expense_stripe 6 l10n_hk_hr_payroll_empf 6 l10n_nl_reports 6 mail 6 base 5 equity 5 l10n_au_hr_payroll_api 5 website 5 documents 4

See all 297 new models, grouped by module

Modules removed and added

113 modules of Odoo 18 are gone

account_auto_transferaccount_disallowed_expensesaccount_disallowed_expenses_fleetaccount_edi_ubl_cii_tax_extensionaccount_intrastat_servicesaccount_no_followupaccount_peppol_selfbillingauth_totp_mail_enforcebase_automation_hr_contractdelivery_fedex_certifieddocuments_hr_contractdocuments_hr_recruitmenthr_appraisal_contracthr_contracthr_contract_reportshr_contract_signhr_holidays_contracthr_holidays_contract_gantthr_work_entry_contracthr_work_entry_contract_attendancehr_work_entry_contract_enterprisehr_work_entry_contract_planninghr_work_entry_contract_planning_attendancehw_drivershw_escposhw_posbox_homepagel10n_ae_corporate_tax_reportl10n_be_account_disallowed_expenses_fleetl10n_be_disallowed_expensesl10n_be_hr_contract_salary_mobility_budgetl10n_be_hr_payroll_dmfa_sftpl10n_be_intrastat_servicesl10n_be_reports_post_wizardl10n_be_reports_proratal10n_be_saftl10n_br_test_avatax_salel10n_ch_hr_payroll_elm_transmissionl10n_ch_hr_payroll_elm_transmission_accountl10n_co_edi_website_salel10n_cz_reports_2025l10n_dk_rsul10n_ec_website_salel10n_ee_roundingl10n_es_modelo130l10n_es_reports_modelo130l10n_es_reports_posl10n_fr_intrastat_servicesl10n_gr_edi_e_invool10n_id_efakturl10n_in_documentsl10n_in_edi_ewaybilll10n_in_enet_batch_paymentl10n_in_ewaybill_portl10n_in_gstin_statusl10n_in_purchasel10n_in_qr_code_bill_scanl10n_in_reports_gstrl10n_in_reports_gstr_document_summaryl10n_in_reports_gstr_spreadsheetl10n_in_reports_tds_tcsl10n_in_withholdingl10n_in_withholding_paymentl10n_it_edi_nddl10n_it_edi_ndd_account_dnl10n_it_edi_website_salel10n_it_edi_withholdingl10n_it_xml_exportl10n_jo_edi_extendedl10n_ke_hr_payroll_shifl10n_mx_hrl10n_mx_hr_payroll_localisationl10n_my_edi_extendedl10n_nl_reports_sbrl10n_nl_reports_sbr_icpl10n_nl_reports_sbr_ob_nummerl10n_nl_reports_sbr_status_infol10n_nl_reports_vat_pay_wizardl10n_pe_website_salel10n_pl_edi_jstl10n_pl_reports_vat_eul10n_pl_taxable_supply_datel10n_ro_efactura_synchronizel10n_us_hr_payroll_state_calculationl10n_uy_website_salemembershippayment_razorpay_oauthplanning_contractpos_epson_printerpos_hr_preparation_displaypos_l10n_sepos_no_followuppos_paytmpos_preparation_displaypos_sale_purchase_stock_inter_company_rulespos_self_order_epson_printerpos_sixpos_urban_piper_swiggypos_urban_piper_zomatopos_viva_walletproduct_imagesproject_enterprise_hr_contractsale_amazon_channel_managementsale_async_emailssale_renting_signspreadsheet_dashboard_hr_contractweb_editorwebsite_event_jitsiwebsite_event_meetwebsite_event_meet_quizwebsite_jitsiwebsite_membershipwebsite_payment_authorizewebsite_sale_shiprocket

209 new modules in Odoo 19

account_budget_purchaseaccount_fiscal_categoriesaccount_fiscal_categories_fleetaccount_peppol_advanced_fieldsaccount_transferaccountant_fleetaccountant_hr_expenseaccountant_knowledgeaiai_accountai_appai_auto_installai_crmai_crm_livechatai_documentsai_documents_accountai_documents_sourceai_fieldsai_knowledgeai_livechatai_server_actionsai_websiteai_website_livechatapi_docauth_passkey_portalauth_timeoutbase_automation_hrdatabasesdatabases_authdocuments_l10n_mx_hr_payroll_account_edidocuments_spreadsheet_surveyequityesgesg_csrdesg_csrd_aiesg_csrd_hresg_csrd_hr_fleetesg_hresg_hr_fleetesg_projectevent_iotevent_sale_iotgoogle_address_autocompletehr_expense_stripehr_expense_stripe_demohr_holidays_homeworkinghr_payroll_sale_commissionhr_recruitment_aihr_signhr_skills_eventhr_work_entry_attendancehr_work_entry_enterprisehr_work_entry_planninghr_work_entry_planning_attendancehtml_builderiot_baseiot_box_imageiot_driversl10n_account_edi_ubl_cii_testsl10n_ae_fafl10n_ae_posl10n_ar_reports_simplel10n_ar_stockl10n_at_intrastatl10n_at_posl10n_au_hr_payroll_apil10n_be_coda_extension_numberl10n_be_fiscal_categoriesl10n_be_fiscal_categories_fleetl10n_be_hr_payroll_dimona_autol10n_be_hr_payroll_fixl10n_be_intervatl10n_be_pos_blackboxl10n_be_pos_blackbox_hrl10n_be_pos_blackbox_hr_pos_blackbox_bel10n_be_pos_blackbox_loyaltyl10n_be_pos_blackbox_pos_blackbox_bel10n_be_pos_blackbox_self_orderl10n_be_pos_blackbox_settle_duel10n_be_pos_blackbox_urban_piperl10n_be_reports_client_nihill10n_be_reports_hr_payrolll10n_bf_reportsl10n_bh_reportsl10n_bj_reportsl10n_br_edi_pos_fiscal_reforml10n_cd_reportsl10n_cf_reportsl10n_cg_reportsl10n_ci_reportsl10n_cm_reportsl10n_cz_intrastatl10n_ec_salel10n_eg_iotl10n_eg_reportsl10n_es_intrastatl10n_es_reports_2025l10n_et_reportsl10n_fi_intrastatl10n_ga_reportsl10n_gel10n_gn_reportsl10n_gq_reportsl10n_gt_edi_posl10n_gw_reportsl10n_hk_hr_payroll_empfl10n_hr_intrastatl10n_hr_kuna_reportsl10n_id_reportsl10n_ie_intrastatl10n_il_reportsl10n_in_edi_gstrl10n_in_ewaybilll10n_in_ewaybill_irnl10n_in_pos_urban_piperl10n_it_hr_payroll_sd_worxl10n_it_intrastatl10n_jo_reportsl10n_jp_reportsl10n_km_reportsl10n_lkl10n_lk_reportsl10n_ml_reportsl10n_mu_reportsl10n_mx_hr_payroll_account_edil10n_ne_reportsl10n_nl_returnsl10n_om_reportsl10n_pe_reports_stock_landed_costsl10n_pl_intrastatl10n_pt_intrastatl10n_ro_intrastatl10n_ro_reports_d300l10n_sa_reportsl10n_sa_withholding_taxl10n_se_posl10n_se_returnsl10n_si_intrastatl10n_sk_reportsl10n_sn_reportsl10n_td_reportsl10n_test_website_salel10n_tg_reportsl10n_tr_nilvera_base_vatl10n_tw_edi_ecpay_posl10n_ug_reportsl10n_uk_intrastatl10n_us_direct_depositl10n_uy_reportsl10n_uzl10n_uz_reportsl10n_za_reportspartnershippayment_dpopayment_ecpaypayment_iyzicopayment_paymobpayment_payupayment_redsyspayment_toss_paymentsplanning_attendancepos_appointmentpos_cashdropos_cashmaticpos_dpopaypos_enterprise_sms_whatsapppos_event_iotpos_glory_cashpos_iminpos_iot_adam_scalepos_iot_ingenicopos_iot_worldlinepos_molliepos_platform_orderpos_platform_order_gofoodpos_platform_order_grabfoodpos_qfpaypos_repairpos_safaricompos_self_order_pine_labspos_self_order_qfpaypos_self_order_viva_compos_viva_compurchase_accountantrpcsale_enterprisesale_lazadasale_stock_product_expirysale_subscription_partnershipsale_tiktoksign_aisign_emsignerstock_maintenancesurvey_crmvoip_aivoip_helpdeskvoip_hrvoip_hr_recruitmentvoip_sale_subscriptionvoip_smsweb_studio_ai_fieldswebsite_hr_recruitment_livechatwebsite_sale_collect_wishlistwebsite_sale_renting_planningwebsite_timesheetwhatsapp_account_followupwhatsapp_calendarwhatsapp_signwhatsapp_stock

Views, menus and actions removed

XML ids that existed in Odoo 18 and no longer exist in Odoo 19. Customisations that inherit or reference them fail to install. See the full list.

And 326 more modules in the full list.

Coverage. Odoo 16 to 17 and 17 to 18 compare Community modules only (the Enterprise 16 and 17 sources are not available to us). Odoo 18 to 19 and 19 to 20 include Community and Enterprise modules. Everything here comes from a static read of the Odoo source code: a field counts as removed only when no parent model, mixin or delegated model still provides it. Fields created dynamically at run time can be missed, and entries we could not confirm are marked as low confidence.