Odoo Help

Welcome!

This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

2

Execute query when installing addon

By
Clément TheSecond
on 6/10/15, 9:30 AM 883 views

Is it possible to execute some queries when somedy install my module ?

And is it possible to execute others queries when uninstalling the same module ?

4

Temur

--Temur--
2894
| 6 5 7
Tbilisi, Georgia
--Temur--
Programmer
Temur
On 6/11/15, 8:33 AM

init_xml that you found is ok.

For an action at installation time, you can also use "function" tag in any normal xml data file, thus calling a function from specified model, see example of "function" tag  in the answer here

For an action at uninstall time (as well as at install time) may work following workaround:

python [8.0 api]:

from openerp import models, fields, api
import logging _logger = logging.getLogger(__name__)

class handle_install_uninstall(models.Model): _name = "handle.install.uninstall"

name = fields.Char('Name')

@api.model
def create(self, vals):
_logger.info("Installing...") # installation time code... # you can use self.env.cr or self._cr here... return super(handle_install_uninstall,self).create(vals)

@api.multi def unlink(self): _logger.info('Uninstalling...") # uninstall time code... # you can use self.env.cr or self._cr here...
return super(handle_install_uninstall,self).unlink()

XML:

<openerp>
    <data>
        <record id="handle_install_uninstall_rec" model="handle.install.uninstall">
<field name="name">Install - uninstall handler</field>
</record> </data> </openerp>

add the above XML file in __openerp__.py manifest as normal 'data' xml file. then record of this model will be created at installation time (consequently "create" method is called and your code executed), when you uninstall module, then record created this way will be deleted at uninstall time, so if this deletion does not bypass the Odoo ORM, then "unlink" will be called and your uninstallation time code will be executed. please make sure that you do not create more then one record of this object in the same database in order to have your code called only once. I never tried this, but normally it should work. Probably there should be better way to call function at uninstallation time, but I do not know such. 


All worked perfectly. When installing AND when uninstalling. Thank you very much.

Clément TheSecond
on 6/11/15, 9:52 AM

you're welcome

Temur
on 6/11/15, 9:59 AM
3
Clément TheSecond
On 6/10/15, 9:56 AM

I've found a part of my answer, to execute SQL query when installing my module, I must add :

'init_xml' : ['query.sql']

in the file __openerp__.py.

But I still don't know how to execute query when uninstalling the module.

Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

2 follower(s)

Stats

Asked: 6/10/15, 9:30 AM
Seen: 883 times
Last updated: 11/19/15, 9:42 AM