OCA / OpenUpgrade

Open source upgrade path for Odoo/OpenERP
https://oca.github.io/OpenUpgrade/
GNU Affero General Public License v3.0
745 stars 698 forks source link

Migration scripts for v9 #400

Closed pedrobaeza closed 5 years ago

pedrobaeza commented 9 years ago

This issue summarizes the development of the migration scripts for v9. Please write down a comment if you want to develop a migration script for one module, to avoid duplicating efforts between the contributors. I have extracted the module list to have it as a reference for tracking the progress:

OCA modules

Yenthe666 commented 9 years ago

@pedrobaeza and @StefanRijnhart I soon need a migration script from V8 to V9 so I was wondering how I could help and how this works. Note that my database knowledge is very limited but I would love to help in this. Could you guys give me information about how I should do this?

pedrobaeza commented 9 years ago

Sorry, but this is not very easy to achieve. There's a lot of work to do. You have to at least check that there are no changes on each of the modules you have installed in your v8 DB, and the ones that have changed their data layout, provide the corresponding scripts that transforms and manipulate data to adapt to the new layout. You have a bunch of examples in the migration scripts from previous versions, and basically is to programatically perform that changes via SQL, ORM or whatever you need. Check the available documentation: https://doc.therp.nl/openupgrade

dreispt commented 9 years ago

I'm in a similar position to @Yenthe666 , but I think the base module is the place to start.

coleste commented 9 years ago

I started working on base

pedrobaeza commented 9 years ago

Cool! @StefanRijnhart, did you start also with that task for not duplicating efforts?

ghost commented 9 years ago

I started working on Project module today.

pedrobaeza commented 9 years ago

I assign you then on the main text. Tell us any doubt about it, but please open a new issue for specific things on a module migration.

ghost commented 9 years ago

Understood, thanks!

dreispt commented 9 years ago

@coleste @mel-microcom You're welcome to open a [WIP] PR, so that we can follow progress.

coleste commented 9 years ago

Done in #404 but there are bootstrap issues I think.

mmalorni commented 9 years ago

@pedrobaeza @StefanRijnhart please have a look at PR #405 and #407 as they are needed to get #404 to pass the tests. Anyone else want to review? Thanks,

luanads commented 8 years ago

Hi guys, what do you think about using zenhub.io to manage the migration scrips in different issues on a kanban board?

mileo commented 8 years ago

@luanads Take a look at: https://waffle.io/OCA/OpenUpgrade

okuryan commented 8 years ago

Hi @pedrobaeza, Is there an overview of what is done for migration from v8 to v9 and what is pending? Is list of modules in first message is actual?

pedrobaeza commented 8 years ago

Yeah, that's it. In summary, there's a lot to do.

pedrobaeza commented 8 years ago

Some notes for making account module migration:

mmalorni commented 8 years ago

@pedrobaeza , @StefanRijnhart , . @coleste is working on the CRM, HR, Sales, Account, project, project issue, mail, product and stock. We might not finish the job but we did the changes we needed to get the OpenUpgrade passing with our data for those modules. We will do pull requests once we have finished the tests and have fixed the bug. Thought you might want to indicate that someone is working on those in the list above.

pedrobaeza commented 8 years ago

Written in the main comment, but it's a pity to let a half work. Please reconsider to give a bit extra fuel to complete that scripts.

mmalorni commented 8 years ago

@pedrobaeza, @StefanRijnhart, .@coleste has done a number of pull requests for the modules CRM, HR, Sales, Account, project, project issue, mail, product and stock. Those work for our environment but we feel that some features or fields might be used by others which will not be covered by the code. The parts that have not been done should be identified in the working document of the analysis for each module. We are available to answer questions and fix issues in the existing scripts or to help someone continue the work on the different modules. We do not have the time right now to complete them all. Some issues might be easy to fix once the analysis is done but our understanding of the differences is limited to the analysis and it is not always sufficient. For example, we realized that the flag to identify unread messages has changed in the new mail object but we didn't investigate it and didn't do a mapping between the old system and the new. The result is that after converting the messages, they are all marked as read. It wasn't a big issue so we did not dig deeper. If someone lets us know, we might take the time to fix while we have the environment setup.

mmalorni commented 8 years ago

@pedrobaeza, @StefanRijnhart,@dreispt We did a migration of our own server with those modules and the only limitation was that the mail history was lost. Other limitations are listed in the analysis document of each module. Some could potentially be reviewed and merged.

[WIP] 9.0 - stock #494 opened 15 days ago by @coleste (Anyone can get the PR and update it) [WIP] 9.0 - sales #493 opened 15 days ago by @coleste (Anyone can get the PR and update it) [WIP] 9.0 mail #492 opened 15 days ago by @coleste (Anyone can get the PR and update it) [WIP] hr - remove view_users_form_mail #491 opened 15 days ago by @coleste (Anyone can get the PR and update it) [WIP] 9.0 crm #490 opened 15 days ago by @coleste (Anyone can get the PR and update it) [FIX] [Review] 9.0 base #489 opened 15 days ago by @coleste [WIP] 9.0 account #488 opened 15 days ago by @coleste

jholze commented 8 years ago

@StefanRijnhart @pedrobaeza We are in planning to migrate to the odoo version 10 in the Q1 of 2017 and the plan is to use and support the openupgrade project. What do you guys think will be the best way, to first finish the migration scripts for 9 and than update / add new for 10, or to write the scripts for 10 and downgrade the specific scripts to 9 ?

hbrunn commented 8 years ago

This depends on what you want to upgrade. If it's a v9 database, the scripts migrating to v9 are not interesting for you. If you want to migrate a v8 or lower database to 10, you'll need the v9 scripts anyways (openupgrade is always incremental)

You might want to talk to @jbeficent who gathered the funds for a big part of the current v9 migration to check if you allocated enough resources.

jholze commented 8 years ago

ok, thanks for both. I didn't knew that the upgrade scripts are incremental.

roberto-barreiro commented 8 years ago

Is this list updated? Purchase module isn't still supported for migration?

pedrobaeza commented 8 years ago

Indeed that one was forgotten to be update. Done on https://github.com/OCA/OpenUpgrade/commit/1f5b73acb143465d9e0ce30f1d6d54dd8caefe65

roberto-barreiro commented 8 years ago

Thank you for answering and updating Pedro.

jholze commented 7 years ago

@pedrobaeza i have good news, we got a project to migrate from odoo 7 to 10 and we will start asap to support the openupgrade with our capacity. I hope we can help to finish some of the migrations scripts which are still open.

pedrobaeza commented 7 years ago

Cool, Jens!

First task is to compare your installed modules in the v7 with the script coverage and find the gaps for migrating on each version.

Then, you can inform here which modules are you going to add scripts for, and we can assign you.

When the PRs are done, I can review them.

jholze commented 7 years ago

Cool. Our devs @rruebner @ateijelo will start soon with this. Just a question, is there a similar tickets also vor v10 ?

pedrobaeza commented 7 years ago

Not for now, but the summary is that everything is pending :disappointed:

I'm talking also with @jbeficent, that is interested in join efforts. He is going to send us soon an email for coordinating the effort.

jholze commented 7 years ago

Ok thanks. Another good news are, that we are also on a second very very big project where we also in discussion with the customer to migrate this as well. This is 8 to 10. so we should create a checklist for the 9 to 10 migration soon.

rruebner commented 7 years ago

Hi all,

@pedrobaeza, after checking our modules I have a few questions to some of them.

We use some modules which were removed in odoo v9. For some modules we found alternatives (OCA, EE, etc.) but there are some modules without alternatives. What should we do with them? Just ignore?

Do we need to migrate the l10n_XX modules? I ask because I don't see them on the list

If nobody has taken base_vat and web_view_editor so far we would do the migration for them.

@jbeficent Can you say how is the migration progress for account_voucher and hr_timesheet. @hbrunn Can you say how is the migration progress for analytic. @cubells Can you say how is the migration progress for procurement. @StefanRijnhart Can you say how is the migration progress for purchase.

JordiBForgeFlow commented 7 years ago

@rruebner what do you mean by 'how is the migration'? Can you clarify?

pedrobaeza commented 7 years ago

account_analytic_analysis

This is already handled on contract module for OCA/contract. Module renamings are handled in https://github.com/OCA/OpenUpgrade/blob/9.0/openerp/addons/openupgrade_records/lib/apriori.py, and once renamed at the beginning of the migration process, you can add pre and post migration script if your target module, like it's done on https://github.com/OCA/contract/blob/9.0/contract/migrations/9.0.1.0.0/pre-migration.py.

account_chart

I don't know about this one and what is their function. The technique here is to see if the functionality is included on core already. If so, look at the explanation of _emailtemplate. If not, then you can migrate the module and put in any OCA repository. If you change the name of the module because of any requirement (meet OCA conventions, avoid conflicts with other existing modules...), you know already where to do this renaming :wink:

edi (I know that the edi handling was done in each module separately before)

The functionality of this module has disappeared, and for now the decision has been to not supply an alternative, as nobody uses it, but as this is a required module in v8 due to dependency chain, the used approach is the same as the _emailtemplate for avoiding later actions by the user.

email_template (is the migration done in the mail module, like move the model email.template from module email_template to mail.template in module mail)

The functionality of this module has been merged on mail module, so it was handled in the mail module migration (as that one is a dependency) with a call to an openupgradelib method that allows that thanks to an expansion I did in PR https://github.com/OCA/openupgradelib/pull/63: https://github.com/OCA/OpenUpgrade/blob/8120ca0ac64ed6c883f0e009c92f9a0d2855b3fc/addons/mail/migrations/9.0.1.0/pre-migration.py#L25.

If anything more needs to be done, it was treated in the same migration script (for example, column renames).

hr_timesheet_invoice

This module is also merged with contract main functionality in the contract migration: https://github.com/OCA/contract/blob/191d690d9669a6a33f35bdc83ef72f0a2940f61c/contract/migrations/9.0.1.0.0/pre-migration.py#L17

share

This function has also disappeared, but for now no decision has been made about easing migration merging its definition on other module (probably base). I think we should merge it indeed. If not merged, it's uninstalled on v9 and it's also a no brainer.

web_graph web_tests

Both are merged on web main module: https://github.com/OCA/OpenUpgrade/blob/8120ca0ac64ed6c883f0e009c92f9a0d2855b3fc/openerp/addons/base/migrations/9.0.1.3/pre-migration.py#L73.

rruebner commented 7 years ago

@pedrobaeza thanks a lot for the information.

@jbeficent We just want to know how far you are with the migration scripts for account_voucher and hr_timesheet. Because we need to migrate these modules too in our project. So if you are not done with the migration scripts maybe we can participate to finish the migration scripts.

JordiBForgeFlow commented 7 years ago

@rruebner we're working on both.

ateijelo commented 7 years ago

Hi, @jbeficent . How is progress coming along on account_voucher ? How can I help you?

JordiBForgeFlow commented 7 years ago

Should be done, both voucher and hr_timesheet.

ateijelo commented 7 years ago

Thanks @jbeficent . I still offer my help if it's needed. @hbrunn, you said analytic is done "tentatively". What do you mean? I could assist in testing or improving the migration.

hbrunn commented 7 years ago

back then I wrote those scripts in a rush, and as soon as it was good enough for me, I released it with the marker that there might be something else to do for other databases. But now after a couple of migrations I think we'd have found problems, so you can make a PR to change this to just done if it also works for you

mlaitinen commented 7 years ago

I just compared branches 8.0 and 9.0. auth_ldap doesn't have any code changes.

Also, rating, rating_project and rating_project_issue don't exist in Odoo 8.

IMO all of these should be marked as "Nothing to do".

StefanRijnhart commented 7 years ago

@mlaitinen thank you for checking these modules. We mark modules 'Nothing to do' by filing a pull request. Will you do the honours?

mlaitinen commented 7 years ago

@StefanRijnhart I had a hunch this was the wrong way to do it :) Thanks for leading me to the right direction.

I just created PR #776.

igallart commented 7 years ago

Migrate module note fail, the field group_note_fancy not is present in odoo 9.

pedrobaeza commented 7 years ago

That's not generally a problem that a column dissapears.

pepetreshere commented 7 years ago

Hello everybody.

At Trescloud we have started a migration project, we need to get with a set of modules up to v10.

I understand we must first ensure everything is migrable to v9, so would somebody please help me clarify if the following modules are ready to be migrated to v9?

hbrunn commented 7 years ago

it's not clear from the documentation that email_template has been ported because this functionality is provided by the mail template by now. The base module is ported, that's implicit as nothing works without this. Some other modules just lack an entry in the list, just check the migrations/$version folder. If this contains a file openupgrade_analysis_work.txt, somebody looked at at already, then it either says there's nothing to do or what needs to be done. account_anglo_saxon is a configuration in account by now, account_chart too

pepetreshere commented 7 years ago

Thanks @hbrunn for your quick reply. I am trying to start learning and working on this project.

I most likely will support the migration to version 10 as it seems that all the modules we used in version 8 are already migrated to version 9 :) (module list might need update however). I have will be doing tests during this week however and I will come back then for picking a module for migration.

sixtyfive commented 6 years ago

hi all, am i correct to understand that migrating from odoo 8 to odoo 9 is still not possible without paying money to The Company? the above task list looks a little like it might depend on the database. is there a script somewhere to check an existing odoo 8 database for whether it's upgradable?

pedrobaeza commented 6 years ago

@sixtyfive it's very simple to check by yourself comparing installed modules with this list (or more specifically, the one included in documentation). Current migration scripts cover 99% of Odoo installations. Any way, this requires a deep knowledge of Odoo for solving inconsistencies in your data, so you will might need to pay "The Company?" or other integrator if you want to be sure a good and professional work is done migrating your DB.