sudo pip3 install pyquerystring
sudo pip3 install parse-accept-language
apt-get install python3-pypdf2
sudo apt-get install libsasl2-dev python-dev libldap2-dev libssl-dev
sudo pip3 install -r requirements.txt
#Note for Debian, sometime we want to install dependencie packages.
sudo apt --fix-broken install
sudo apt-get install postgresql-11-postgis-2.5
sudo -H pip3 install pyscreenshot
- master password
- ví dụ ta đặt trong
odoo.conf
1 option có tên làadmin_passwd = 1234
. Vậy mỗi khi cần tạo db, switch db, ta cần phải nhập đúng pass đó vào để tiếp tục thực hiện.
- ví dụ ta đặt trong
Odoo có database manager web/database/manager
, mục đích là để switch odoo hiện tại đến 1 db mới, với connection string như cũ, và các apps cần phải được cài lại trên db mới (nếu các apps đó chưa được cài trên db mới trước đó). Việc này giúp mình có thể liên tưởng đến các case sử dụng như sau:
- Muốn thử cài lại tất cả trên 1 db hoàn toàn mới, phục vụ cho mục đích developement.
- Nếu muốn migrate 1 số apps từ cũ sang mới?
- Khi đó odoo không ra màn hình setup, mà ra luôn màn hình đăng nhập, vì sao?
- Sau khi đăng nhập màn hình odoo thứ 2 sẽ ra trang trắng, trong khi odoo đầu tiên vẫn hoạt động, vì sao?
- Vậy các phiên bản odoo khác nhau có liên quan gì khi chọn chung 1 user.
- Ở database manager
web/database/manager
làm sao odoo xác định danh sách database?
# create user
create user odoo1 with password '123';
# grant privileges on user
alter user odoo1 createdb;
Sau đó start odoo sử dụng user vừa tạo.
docker run -p 8069:8069 --name odoo12 -v /Users/debug/Projects/odoo-addons:/mnt/extra-addons -e USER=odoo1 -e PASSWORD=123 -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=123 --link postgres10:db -t -d odoo:12
Câu lệnh này run odoo:12 với database là postgres10, user để đăng thực hiện tạo DB cho odoo trên postgres là odoo1
và pass là 123
. Để odoo
có thể tạo được db mới trên postgres, nó phải được cấu hình để có quyền đó alter user odoo1 createdb
. Vậy POSTGRES_USER
để làm gì?
# install my module. dev12 is database
./odoo-bin -d dev12 -i library_app
# upgrade app
./odoo-bin -d dev12 -u library_app,mail
# run doo with config
python3 /odoo/server/odoo-bin -r odoo -w odoo --db_host=0.0.0.0 --db_port=5432 --db-filter odoo111 --config=/odoo-server.conf
update ir_config_parameter set value = 'file' where key = 'ir_attachment.location';
update ir_config_parameter set value = 's3://access_key:secret_key@erp-attachment' where key = 'ir_attachment.location';
- Trong
http
chứarequest
, request chứasession
, session chứa tên db, user id (uid
)
- Trong odoo folder chứa các files như là
models.py
,fields.py
,exception.py
. Trong này chứa các func cơ bản để thao tác trên odoo. Ví dụmodels.py
: trong này cósudo()
trong trường hợp cần access resource với quyềnSUPERUSER
.sudo()
là 1 method củaBaseModel
=> tất cả các model đều có hàm này. Để truy xuất model, cú pháp quen thuộc là `request.env['model_name'].search()
: là 1 method của base model, bạn cần tìm model với các điều kiện nào?- TODO: tìm hiểu
MetaModel
, vì sao khisearch
1 danh sách items, items có kiểu làMetaModel
, nhưng type củaitems[0]
cũng làMetaModel
, vậy nó đại diện cho cái gì?
revoke connect on database odoo0309 from public;
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid <> pg_backend_pid() and datname = 'odoo0309';
drop database odoo0309;
- https://odoo-development.readthedocs.io/en/latest/admin/db_maxconn.html
- https://blog.tmzvps.com/how-to-make-odoo-faster/
- Bài viết khá hay về cách config: https://www.odoo.com/documentation/12.0/setup/deploy.html
- https://www.odoo.com/fr_FR/forum/aide-1/question/im-and-multi-thread-gevent-and-workers-63516
- https://github.com/marclijour/odoo-s3
- https://github.com/diogocduarte/odoo_s3
- Where is filestore's location of odoo:
/root/.local/share/Odoo/filestore
(if odoo is running on userroot
on ubuntu)