Skip to Content
Menu
This question has been flagged
5 Replies
7225 Views

Dear team,


I am using Odoo 10 community.

We want some modules to be auto installed on Database creation.

Mainly required modules are:

Sale, account, invoicing..


We have set the auto_install flag in __manifest__.py file for each module as below..


'installable': True,
'auto_install': True,

However, still when we create Database, these modules are not auto installed.

I tried to change auto_install to True on all its dependent modules as well.. But still nothing works..


Team,
Please help.. I am badly stuck..  This is imp for few projects..


Any input is highly appreciable..



Avatar
Discard

create a init file with "-i sale -i account -i invoicing .... --stop-after-init --without-demo=all"

use with correct model names.

Author

Thanks. I didnt knew that there is option as stop-after-init...

I did not understand where to keep the new __init__ file ??

I have added this line in my startup script from where I start the server but it will have issues again when new DB created :(

However, if this solution works with init file , it will be great .

I will be thankful if you can put some light on the init file solution and mention the path where this init file to be kept and how does odoo run this init file on db creation ?

see my post below. you don't need to worry about creating new db. if you write your init scripts properly to handle all.

Best Answer

here is the bash file that i use for local stuff. this should do fine.  don't touch odoo code files at all.

if you need to modify a part in it, extend that module and work on extension. not core.

#!/bin/bash
fnc_install_args="-i account -i website -i website_sale -i website_crm"
fnc_local_args="-u mymodule"

fnc_clean() {
eval "find . -name ""*.pyc"" -delete"
eval "find . -name ""__pycache__"" -delete"
}

fnc_init() {
# create your directories here sessions, data, etc ...
}

fnc_install() {
eval "./setup/odoo --config=./etc/odoo-server.conf --xmlrpc-port=8090 --log-level=info --without-demo=all --stop-after-init $fnc_install_args"
}

fnc_local() {
eval "./setup/odoo --config=./etc/odoo-server.conf --xmlrpc-port=8090 --log-level=info --without-demo=all $fnc_local_args"
}

fnc_upgrade() {
eval "./setup/odoo --config=./etc/odoo-server.conf --xmlrpc-port=8090 --log-level=info --stop-after-init -u base"
}

case "$1" in
clean)
fnc_clean
;;

local)
fnc_clean
fnc_local
;;

install)
fnc_init
fnc_install
;;

upgrade)
fnc_clean
fnc_upgrade
;;

*)
echo "Usage: {clean|local|install|upgrade}" >&2
exit 1
;;
esac

exit 0


for further options, in terminal:

$ ./setup/odoo --help

 

Avatar
Discard
Author

Awesome.. That's a wonderful bash fulfilling all needed options...

This would be perfect when bash file is executed with arguments as install , etc ..

Wondering how it will come in picture when database is created from default odd structure..

Sorry if asking too much but which part of odoo code And structure I need to look at to do these things on default odoo DB creation..

Even if this bat file is executed on db creation.. It will solve everything..

That's the last support and thanks a ton for all the help..

assuming that only pgadmin user has db create rights, odoo.db user has only full access on its own workspace (db in this case). just create database from psql in terminal, let init script handle the rest. ( the part you mention above, structure etc.. ). once finished configure company info etc etc etc.

here is psql commands to create user&db. make sure you have relevant encoding.

su

su - postgres

psql

CREATE USER db_user_here WITH PASSWORD '****';

CREATE DATABASE db_here

WITH OWNER = db_user_here

ENCODING = 'UTF8'

TABLESPACE = pg_default

LC_COLLATE = 'en_US.UTF-8'

LC_CTYPE = 'en_US.UTF-8'

CONNECTION LIMIT = -1;

\q

Author

Yes agree and I did all this manually..

Let me tell you what exactly I mean..

Suppose first time when someone opens

localhost:8069

He is asked to create Database..

Now, when a DB is created, it should have the required modules installed which we are doing from bat file..

So how to proceed with default way of db creation from web ( from first db when no db exist )

Assuming setup is correct and localhost:8069 asks for DB creation first time.. And always as new db creation..

like i mentioned above, create db manually, let init handle the rest. I haven't installed any db from /web at all. all configured from terminal. when everything is installed correctly, it won't ask you to setup a database. you should see the login page.

Best Answer

This post might help you...

https://www.odoo.com/forum/help-1/question/auto-install-installable-active-in-openerp-py-file-19776

Avatar
Discard
Author

After this post only posted the question. This is theoretically correct but does not work in practical. There is something more on it.

Related Posts Replies Views Activity
2
Sep 16
6520
1
Mar 24
271
2
Jul 20
3013
1
Jan 20
1553
1
Dec 19
3126