Upgrades stall on custom code. The standard modules move forward cleanly; it's the module a partner wrote three versions ago, that nobody has looked at since, that turns a weekend into a quarter.
The first useful thing is an honest inventory: which of your customizations still work on the target version, which need changes, and which have been made redundant because Odoo now does it natively. That last category is usually larger than people expect.
CodeCobra reads your modules against the target version and tells you which is which. Then it does the work — porting what needs porting, deleting what Odoo now covers, testing each piece in a disposable instance of the new version before anything is committed.
Migrations from another system follow the same shape, with reconciliation at the end: the totals in the old system against the totals in the new one, line by line where they differ.
What people asked, and what came back
Real production requests, condensed and with anything identifying removed.
ConsultantEvents
Import the accounting history for the QuickBooks migration, with closing entries.
What happened: Imported the history, set up the bank and credit-card journals, and reconstructed the prior year-end trial balance.
DeveloperRetail
Investigate whether these v13 custom modules can be migrated to v19.
What happened: Assessed every module for feasibility, then migrated the ones worth keeping — theme, portal orders, extended product behaviour.
ConsultantEvents
We fixed a lot of import errors on the existing staging database. Now I want to test all the imports from a fresh start.
What happened: Stood up a clean database and proved the import resumes on a date cursor rather than restarting — no duplicate records.
ConsultantPublishing
Import the three phone fields we made in Studio from the old v15 database.
What happened: Mapped the Studio fields and imported all three phone types.
More requests in this category
47 more real requests in this job, grouped by the part of Odoo they touch.
Accounting
A vendor charged one payment as two separate transactions. Can I reconcile one against both?Controller · Manufacturing
After the migration my accounts payable balance as of May is −$6,294,381.50, and it doesn't match the −$6,455,195.51 on the old system's balance sheet.Consultant · Manufacturing
At go-live there were a lot of opening balance entries, including two customer invoices that got created. Can you make sense of what went on there?Consultant · Distribution
Bring over open invoices and credits as of the cutover date — nothing else.Consultant · Events
From next year they'll use Odoo as their primary accounting software. Since they've been transacting in QuickBooks so far this year, we need to make sure all the accounting transactions come across.Consultant · Events
I have a payment of $2,941.87 that the vendor charged as two separate transactions, $538.40 and $2,403.47. Can I reconcile one transaction against two? These are part of the migration.Controller · Manufacturing
I need help closing out my books for 2025. We did a data migration in March bringing our data over from the old system, and part of that was an opening journal entry.Consultant · Distribution
I need to review the inventory value figures in accounting. They may have been inflated by the way the accounting migration was done.Consultant · Distribution
I need to work through a couple of post-migration questions — prompt me for clarification if you need it. When we went live we imported the full trial balance from 31 March as the first opening balance.Consultant · Manufacturing
I'm migrating accounting from QuickBooks — two years of vendor bills, invoices, payments and stock moves.Consultant · Events
I'm planning the accounting migration from QuickBooks. For 2024 and 2025 I'm bringing over vendor bills, invoices, payments and stock moves, then a closing trial balance journal entry for each year end.Consultant · Events
In the account move migration some payment terms weren't set up correctly, so on invoices and bills the due date ended up the same as the invoice date.Consultant · Manufacturing
In the accounting migration there are three miscellaneous journal entries and two invoices that together make up my opening balance. Why do I need all of these entries?Consultant · Distribution
In the migration we set an inventory opening balance, then imported inventory and calculated from the adjustments.Operations · Distribution
Post go-live, the migration clearing account has a balance and I'm trying to work out why. My suspicion is that we imported open unreconciled payments against the migration clearing account.Consultant · Manufacturing
Since go-live the migration clearing account has a balance. I suspect we imported open items twice.Controller · Manufacturing
Test-upgrade our staging database to the next version and list what breaks.Developer · Retail
This purchase order is a duplicate from the migration. I applied a payment, but the bill, the PO and the sales order should all be deleted — we should keep the invoice, since we never invoiced the customer on the old system.Controller · Manufacturing
We finished an accounting data migration that brought in transactional data for receivables, payables and inventory. Everything else came in as a balance only.Consultant · Manufacturing
We migrated accounting data — receivables, payables and inventory. It needs checking against the source.Consultant · Manufacturing
We migrated from legacy software to Odoo. Every open transaction — invoices, bills and so on — came in against an invoice clearing account.Consultant · Distribution
We need to review the accounting migration done at go-live, check the accounting is up to par, and work out whether anything needs remediating.Consultant · Distribution
We've been working hard to remediate the migration issues and make things perfect. I'm going to paste the handoff from the other chat — we need to work through the steps meticulously.Consultant · Distribution
When we moved off our legacy software, all open invoices and bills were imported against a single account.Operations · Distribution
Inventory & warehouse
Can you check this module was migrated from 18.0 to 19.0 properly, and generate functional test cases to prove it?Developer · ERP consulting
I want to understand the changes Odoo made to replenishment, specifically around suggesting quantities. Odoo has a new way of doing it and I want to analyse what changed.Consultant · ERP consulting
I'm trying to work out how to best use the way Odoo combines packaging and units of measure in v19. Can we start by weighing up the pros and cons of the change in structure?Consultant · Manufacturing
In 18 the unit-of-measure model had a category field. What changed in 19? I can't find it any more.Developer · ERP consulting
In the migration we had an inventory opening balance, then imported inventory calculating the balance from the adjustment valuation and cleared the amount. Somehow the numbers didn't line up.Consultant · Distribution
Rebuild last year's inventory valuation after the costing method change.Consultant · Distribution
Documents & email
The module I'm attaching is for Odoo 18 — the dependencies don't matter. It updates the invoice print report, and I need that report upgraded to Odoo 19.Operations · Small business
Website & portal
Restore the Odoo 13 product image behaviour on the Odoo 19 shop card and product page for when no variant has been selected.Consultant · Retail
Data & imports
As you can see in the screenshots, Odoo 15 has four lines for phone numbers and Odoo 19 has only one. That's a serious problem, because we put numbers across all four lines.Consultant · Publishing
Can you spot check that the historical sales and purchase orders imported cleanly?Consultant · Manufacturing
I have some post-migration questions to work through from when we went live. Prompt me if you need clarification.Consultant · Manufacturing
I want to send the customer a list of every field being set in their data migration. We can go through the scripts to work it out.Consultant · Wholesale
I'm looking at the result of a migration from v15 and trying to work out what happened. This product had 300-plus variants in v15 and now has two.Consultant · Publishing
I'm reviewing the data migration strategy. I built automation to download data from their database and upload it into Odoo, and now I'm reviewing the import scripts we have.Consultant · Wholesale
Migrate the custom fields we built in Studio into a proper module.Consultant · Publishing
We changed a computed field to stored on stock moves and move lines. Now if we update the module we won't have the value, because the field was added afterwards.Consultant · Distribution
We're doing a data migration, moving a lot of information out of custom fields on products and into product attributes.Developer · Apparel
Projects & tasks
Analyse this Odoo 13 module and identify every business feature it implements. My goal isn't to migrate the code to 19 — I want to know what it actually does first.Consultant · Retail
I need to migrate from a custom support system into the community helpdesk module on Odoo 19.Developer · ERP consulting
I've uploaded an app built for Odoo 18. Can you make it compatible with 19 and give me the zip back?Operations · Small business
List me what Odoo 19 offers that's missing from our 17 database.Owner · Import & wholesale
Migrate the community helpdesk module from 18.0 to 19.0, following the OCA migration standards.Developer · ERP consulting
Delivery & dispatch
Analyse this old delivery-carrier module and list the business features it implements — I'm not necessarily porting it.Consultant · Retail
Which Odoo versions are supported?
16.0, 17.0, 18.0 and 19.0, in Community and Enterprise. It can read a module written for one and tell you what it needs to run on another.
Can I see what will break before committing?
That's the recommended first step. Ask for an assessment of your custom modules against the target version — it's a read-only investigation, it costs little, and it's the input to deciding whether to go at all.
How do I know the migrated data is right?
Ask for the reconciliation explicitly: totals in the old system against totals in the new, and a list of every record that differs. Don't accept a migration you can't check.