Search 1.9 billion lines of Odoo code on GitHub

smile_upgrade

Author: Smile
License: AGPL-3
Branch: 15.0
Repository: anhvu-sg/odoo_addons
Dependencies: web
Languages: HTML (450, 47.4%), JavaScript (20, 2.1%), Python (371, 39.1%), XML (10, 1.1%), and reStructuredText (99, 10.4%)
Other branches: 10.0, 12.0, 13.0, 14.0, 15.0-dev-mig-smile-upgrade, 6.1, 7.0, 8.0, and 9.0
Other repositories: 3dfxmadscientist/odoo_addons, A-Gut/odoo_addons, AXOOM/odoo_addons, AbdelghaniDr/odoo_addons, Ammoun84/smile_openerp_addons_6.1, Aquevix/odoo_addons, AwesomeFoodCoops/odoo-production, BGEray/odoo_addons, Boudmir-Ibrahim/odoo_addons, BryanNah/odoo_addons, ChrisEnglert/odoo_addons, ClancyQiao/odoo_addons, CustomOdoo/odoo_addons, DITIntl/odoo-production, DamonLiu0814/odoo_addons, Dayssam/odoo_addons, Decikingship/odoo_addons, ERPLibre/odoo_addons, GabbasovDinar/odoo_addons, Gofekra/odoo_addons, Gonscar88/odoo_addons, Groupe-Informatique-LaCoopSurMer/odoo-production, GrupoAlvamex/odoo_addons, Guobower/Smile-SA-odoo_addons, H-Max/odoo_addons, Ingeos/odoo_addons, Jeisonpernia/odoo_addons-1, JuanjoA/odoo_addons, Judystudy/odoo_addons, Kalway-Technology/odoo_addons, Kiplangatdan/odoo_addons, LiberTang0/odoo_addons, LipingSun/odoo_addons, Logicasoft/FORK_odoo_addons, MackZhong/odoo_addons, MathBenTech/odoo_addons, Mojoamex05/odoo_addons, MrZ-777/odoo_addons, NCS-75/odoo_addons, Netsoro/odoo_addons, Numigi/odoo-smile-addons, OdooBulgaria/odoo_addons, OdooIndonesia/odoo_addons, Openworx/odoo_addons, OpusVL/odoo_addons, Otsokop/odoo-production, Palpid/odoo_addons, RL-OtherApps/odoo_addons, SanteLibre/odoo_addons, Smile-SA/odoo_addons, TheCloneMaster/odoo_addons, Troublicious/smile_openerp_addons_7.0, Vauxoo/smile-addons, VitalPet/odoo_addons, VizThoughts/odoo_addons, WEIX-Soliton/odoo_addons, YeHtut/odoo_addons, YogeshMahera-SerpentCS/odoo_addons, YoungEyeBalls/smile_openerp_addons_6.1, a4435351/odoo_addons, abdo3247/odoo_addons, adrianoaguiar/odoo_addons, ajinvn2019/odoo_addons, alanljj/odoo_addons-1, alecodigo/odoo_addons, alesisjoan/odoo_addons, altanmur/odoo_addons, anndream/odoo_addons, anodino-dev/odoo_addons, antonioMeneses/odoo_addons, arasty/odoo_addons, astirpe/odoo_addons, avoinsystems/odoo_addons, azmeuk/odoo-production, babatoko/odoo-production, beloeuvre/odoo-production, bertontin/odoo_addons, bestshore/odoo-smile-addons, bjoliveau/odoo_addons, bmya/odoo_addons, bopo/odoo_addons, bunhin/odoo_addons, cameroun/odoo_addons, captivea-ylb/odoo_addons, ccottet/odoo_addons, chadyred/odoo_addons, chenzhiming/odoo_addons, chermed/odoo_addons, chetanrdhaduk/odoo-production, clagoa/odoo_addons, connect-to-ak/odoo_addons, darkwhite9/odoo_addons, davidmonterocrespo24/odoo_addons, davidwah/odoo_addons, ddico/odoo_addons, demain-supermarche/odoo-production, diegobgl/odoo_addons, dmattosr/odoo_addons, dndoanh/odoo_addons, dominiquekonsuntack/odoo_addons, drmedrme/odoo_addons, druidoo/FoodCoops, dtorresxp/smileaddons, dtthach/odoo_addons, dzungtran89/odoo-production, edsersolis/odoo_addons, eezee-it/odoo_addons, ejbdev/odoo_addons, emyu01/odoo_addons, ericdai/odoo_addons, estevebadia/odoo-production, etoanik/odoo_addons, fachmimaasy/odoo_addons, feiyaogzs/odoo_addons, fjouatte/odoo-production, flowdow/smile_openerp_addons_7.0, fox-pan-www/odoo_addons, gameboy199/odoo_addons, garzadekoster/odoo_addons, gastonfeng/odoo_addons, genral73/odoo_addons, germanponce/odoo_addons, gitlabuser/odoo_addons, gmplab/odoo_addons, gobozgz/odoo_addons, greg4fun/smile_openerp_addons_6.1, grottas/odoo_addons, guidev224/odoo_addons, guohuadeng/odoo_addons, h4ck3rm1k3/odoo_addons, halgandd/odoo-production, hassanfadl/odoo_addons, hilarak/odoo-production, hilarak/odoo_addons, hoangpq/odoo_addons, hoangtk/odoo_addons, huahyong/odoo_addons, huangweiboy/odoo_addons, iamyeonhan/odoo_addons, iceship/odoo_addons, isabellerichard/odoo_addons, izzihector/odoo_addons, jlzhou/odoo_addons, jweste/odoo-production, kit9/odoo_addons, kleitz/odoo_addons, kossovo/odoo_addons, kotchasaan/odoo_addons, krunal267/odoo-production, krupesh-weboffice/odoo_addons, lachouettecoop/odoo-production, lafai/smile_openerp_addons_7.0, leetaizhu/odoo_addons, legalsylvain/odoo-production, lembregtse/odoo_addons, likaiyuan/Smile_addons, linhdoan-novobi/odoo_addons, liweijie0812/odoo_addons, lnkdel/odoo_addons, marcelomora/odoo_addons, marcelsavegnago/odoo_addons, mateochau/odoo_addons, mathieuvatel/odoo-production, mayjo79/odoo_addons, mgielissen/odoo_addons-1, miarma-corporation/odoo_addons, mohamedhagag/odoo_addons-1, molandtoxx/odoo9_addons, mrezki/odoo_addons, mszinte/odoo-production, mudismud/odoo_addons, muk-projects/odoo_addons, mulaudzicalvin/odoo-production, mutita/odoo_addons, myodoo/odoo_addons, n1ku/odoo_addons, necrodevz/odoo_addons, niulinlnc/odoo_addons, njeudy/odoo_addons, nthnnl/odoo-production, odoo-modules/odoo-production, odoo-modules/odoo_addons, odoochain/odoo_addons, odoocn/odoo_addons, odoofans/odoo_addons, odoousers2014/odoo_addons, one2pret/odoo_addons, onurugur/odoo_addons, oondeo/smile_odoo_addons, open-synergy/odoo_addons-1, osiell/odoo_addons, ovnicraft/odoo_addons, petrus-v/odoo-foodcoops, petypi/odoo_addons, phuctranerp/odoo-production, pieterpalmers/odoo_addons, postfixexmail/odoo_addons, pythoner-3k/odoo_addons, qponline/odoo_addons, raditv/odoo_addons, rafnixg/odoo_addons, raouf-haddada/odoo_addons, redblow/odoo_addons, rihene-abdelwahed/odoo-production, robertrottermann/odoo_addons, robwithhair/odoo_addons, rossasa/smile-addons, royalline1/odoo_addons, salahable/odoo_addons, salvatoretrimarchi/odoo_addons, sarac2013/odoo_addons, sasakuma/odoo_addons-1, savoirfairelinux/smile_odoo_addons, sc4you/odoo-production, sc4you/odoo_addons, scbrianti/odoo_addons, schout-it/odoo_addons, semamca35/odoo_addons, sewisoft/odoo_addons, shengyf1/odoo_addons, shouyejing/odoo_addons-1, siddharth7815/odoo-production, skiltz/odoo_addons, skmezanul/odoo_addons, sm2x/odoo_addons, sockyjam/odoo_addons, souka1/odoo_addons, sprevot44/odoo-production, stephanesalah/odoo_addons, suningwz/odoo-production, supercoopbdx/odoo-production, superquinquin/odoo-production, talway/odoo_addons, tedi3231/odoo_addons, telac/odoo_addons, tghamgs/odoo_addons, thinkwelltwd/odoo_addons-1, trobz/odoo-production, ttpphuctran/odoo-production, ubic135/odoo_addons, unitek-solusi/Smile-odoo_addons, usbpendrive/odoo_addons, vidtsin/odoo-production, vidtsin/odoo_addons, vikriusman/odoo_addons, vkuldeep/odoo_addons, wahello/smile-sa-odoo_addons, wahhid/odoo_addons, waynejid/odoo_addons, westlyou/odoo_addons-1, x2nie/odoo_addons, xhair/odoo_addons, xubiuit/odoo_addons, yasmanycastillo/odoo_addons, yastri/odoo_addons, yf956613/odoo_addons, yuntux/odoo-production, zaben10/odoo_addons, zhujin001032/odoo_addons, zouine/odoo_addons, and zoujinbin/odoo_addons

<p><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.svg"> <a class="reference external" href="https://github.com/Smile-SA/odoo_addons/tree/15.0/smile_upgrade"><img alt="Smile-SA/odoo_addons" src="https://img.shields.io/badge/github-Smile--SA%2Fodoo_addons-lightgray.png?logo=github" /></a></p> <a name="database-upgrade"></a> <h2>Database Upgrade</h2> <p>This module helps you upgrade database automatically after code update and server restarting.</p> <p><strong>Table of contents</strong></p> <div class="contents local topic" id="contents"> <ul class="simple"> <li><a class="reference internal" href="#requirements" id="id1">Requirements</a></li> <li><a class="reference internal" href="#usage" id="id2">Usage</a><ul> <li><a class="reference internal" href="#configuration" id="id3">Configuration</a><ul> <li><a class="reference internal" href="#upgrade-tree-view" id="id4">Upgrade tree view</a></li> <li><a class="reference internal" href="#configure-the-version" id="id5">Configure the version</a></li> <li><a class="reference internal" href="#configure-the-version-to-load" id="id6">Configure the version to load</a></li> </ul> </li> <li><a class="reference internal" href="#execute-an-upgrade" id="id7">Execute an upgrade</a><ul> <li><a class="reference internal" href="#odoo-configuration" id="id8">Odoo configuration</a></li> <li><a class="reference internal" href="#execute-upgrade" id="id9">Execute upgrade</a></li> </ul> </li> <li><a class="reference internal" href="#additional-features" id="id10">Additional features</a></li> </ul> </li> <li><a class="reference internal" href="#known-issues" id="id11">Known Issues</a></li> <li><a class="reference internal" href="#bug-tracker" id="id12">Bug Tracker</a></li> <li><a class="reference internal" href="#credits" id="id13">Credits</a><ul> <li><a class="reference internal" href="#contributors" id="id14">Contributors</a></li> <li><a class="reference internal" href="#maintainer" id="id15">Maintainer</a></li> </ul> </li> </ul> </div> <a name="requirements"></a> <h3><a class="toc-backref" href="#id1">Requirements</a></h3> <p>There are no requirements to use this module.</p> <a name="usage"></a> <h3><a class="toc-backref" href="#id2">Usage</a></h3> <a name="configuration"></a> <h4><a class="toc-backref" href="#id3">Configuration</a></h4> <a name="upgrade-tree-view"></a> <h5><a class="toc-backref" href="#id4">Upgrade tree view</a></h5> <p>Upgrades directory must be structured like this:</p> <pre> <code>project ├── upgrades | ├── 1.1 | | ├── __upgrade__.py | | ├── *.sql | | ├── *.py # only for post-load | | ├── *.csv # only for post-load | | ├── *.xml # only for post-load | ├── 1.2 | | ├── __upgrade__.py | | ├── *.sql | ├── upgrade.conf</code> </pre> <p>You can find an example of upgrade in <a class="reference external" href="smile_upgrade/demo">demo directory</a> of this module.</p> <a name="configure-the-version"></a> <h5><a class="toc-backref" href="#id5">Configure the version</a></h5> <p>Fill the file <em>__upgrade__.py</em> with following options:</p> <ul class="simple"> <li><cite>version</cite></li> <li><cite>databases</cite>: let empty if valid for all databases</li> <li><cite>translations_to_reload</cite>: language codes list to reload in post-load</li> <li><cite>description</cite></li> <li><cite>modules_to_install_at_creation</cite>: modules list to install at database creation</li> <li><cite>modules_to_upgrade</cite>: modules list to update or to install</li> <li><cite>pre-load</cite>: list of .sql files</li> <li><dl class="first docutils"> <dt><cite>post-load</cite>: list with .sql, .py, .csv and .xml files</dt> <dd><ul class="first last"> <li><cite>.../filename</cite> (depending on option <cite>upgrades_path</cite>) or</li> <li><cite>module_name/.../filename</cite></li> </ul> </dd> </dl> </li> </ul> <p>Each Python file in post-load must have a function post_load_hook(env)</p> <a name="configure-the-version-to-load"></a> <h5><a class="toc-backref" href="#id6">Configure the version to load</a></h5> <p>The upgrade version to load is set in file <em>upgrade.conf</em>, at the root of the <em>upgrades</em> directory, with this content (replace the version by your version number):</p> <pre> <code>[options] version=1.2</code> </pre> <a name="execute-an-upgrade"></a> <h4><a class="toc-backref" href="#id7">Execute an upgrade</a></h4> <a name="odoo-configuration"></a> <h5><a class="toc-backref" href="#id8">Odoo configuration</a></h5> <p>Update your Odoo configuration file with the following options:</p> <ul class="simple"> <li><cite>upgrades_path</cite> (required): path to the upgrades directory</li> <li><cite>stop_after_upgrades</cite> (default: False): stop server after upgrades if True</li> </ul> <a name="execute-upgrade"></a> <h5><a class="toc-backref" href="#id9">Execute upgrade</a></h5> <p>To execute an upgrade, you need to launch server with the following command:</p> <pre> <code>odoo.py -c &lt;config_file&gt; -d &lt;db_name&gt; --load=web,smile_upgrade</code> </pre> <a name="additional-features"></a> <h4 class="with-subtitle"><a class="toc-backref" href="#id10">Additional features</a></h4> <h4 class="section-subtitle" id="specify-error-management"><span class="section-subtitle">Specify error management</span></h4> <p>In <cite>post-load</cite>, you can replace filename string by tuple to specify error management.</p> <p>Available options are:</p> <ul class="simple"> <li><cite>raise</cite> (default value): if an error is raised, stop upgrade execution by raising the error</li> <li><cite>rollback_and_continue</cite>: if an error is raised, rollback to the savepoint set before the file execution and continue with the other files of the list</li> <li><cite>not_rollback_and_continue</cite>: if an error is raised, no rollback is done and continue with the other files of the list</li> </ul> <p>Example:</p> <pre> <code>'post-load': [ ('post-load/fix_product_pricelist.py', 'rollback_and_continue'), ],</code> </pre> <a name="known-issues"></a> <h3><a class="toc-backref" href="#id11">Known Issues</a></h3> <p>Adding fields on models <cite>res.partner</cite> or <cite>res.users</cite> can result to a failure of the upgrade.</p> <p>To fix that, please add in <cite>pre-load</cite> a SQL file to add field on table <cite>res_partner</cite> or <cite>res_users</cite>, by defining the type and of column, constraint and set a default value on existing records:</p> <pre> <code>ALTER TABLE res_users ADD COLUMN IF NOT EXISTS my_new_boolean BOOLEAN; UPDATE res_users SET my_new_boolean = TRUE;</code> </pre> <p>These SQL requests are not required at database creation.</p> <a name="bug-tracker"></a> <h3><a class="toc-backref" href="#id12">Bug Tracker</a></h3> <p>Bugs are tracked on <a class="reference external" href="https://github.com/Smile-SA/odoo_addons/issues">GitHub Issues</a>. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed feedback <a class="reference external" href="https://github.com/Smile-SA/odoo_addons/issues/new?body=module:%20smile_upgrade%0Aversion:%215.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">here</a>.</p> <p>Do not contact contributors directly about support or help with technical issues.</p> <a name="credits"></a> <h3><a class="toc-backref" href="#id13">Credits</a></h3> <a name="contributors"></a> <h4><a class="toc-backref" href="#id14">Contributors</a></h4> <ul class="simple"> <li>Corentin POUHET-BRUNERIE</li> </ul> <a name="maintainer"></a> <h4><a class="toc-backref" href="#id15">Maintainer</a></h4> <p>This module is maintained by Smile SA.</p> <p>Since 1991 Smile has been a pioneer of technology and also the European expert in open source solutions.</p>