Odoo development environment settings

Có một số cách để thiết lập môi trường phát triển Odoo. Phần này đề cập đến một trong số các cách đó.

Các nội dung chính:

Tìm hiểu về Odoo

Odoo cung cấp cho nhà phát triển các module độc lập. Nó là một framework mạnh mẽ giúp các nhà phát triển có thể xây dựng được một dự án rất nhanh chóng.

Viindoo phát triển các ứng dụng dựa trên nền tảng của Odoo, các ứng dụng này hoàn thiện tính năng đã có hoặc cung cấp các tính năng mới vô cùng hữu ích, tạo nên một phần mềm vô cùng tuyệt vời cho các doanh nghiệp. Các ứng dụng của Viindoo nằm trong các bộ mã nguồn khác nhau, mỗi bộ mã nguồn lại đem đến các tính năng với các đặc trưng riêng. Toàn bộ mã nguồn của Viindoo được lưu trữ trên Github, sau đây là thông tin về một số repositories của Viindoo:

Runbot

Runbot là một môi trường test tự động của Viindoo. Bất cứ khi nào có một commit mới trong nhánh GitHub, Runbot sẽ đưa những thay đổi mới nhất đó vào các bản dựng, bạn có thể tham khảo các bản dựng của Runbot tại runbot.viindoo.com

Cài đặt Odoo

Bạn nên sử dụng hệ điều hành Linux Ubuntu, vì đây là hệ điều hành mà Odoo sử dụng cho tất cả các việc như test, gỡ lỗi và cài đặt Odoo. Thực tế, hầu hết các nhà phát triển đều sử dụng các hệ điều hành này, và khi gặp sự cố, bạn sẽ dễ dàng nhận được sự hỗ trợ từ cộng đồng phát triển hơn so với các hệ điều khác như Windows và macOs.

Bạn cũng nên xây dựng các module mở rộng bằng cách sử dụng cùng một môi trường (cùng một bản phân phối và cùng một phiên bản). Điều này sẽ tránh được những vấn đề không mong muốn xảy ra. Nếu bạn đang sử dụng một hệ điều hành khác, cách tốt nhất là chuyển sang dùng các hệ điều hành Linux (khuyến khích dùng Ubuntu).

Trong hướng dẫn này sử dụng Ubuntu 20.04 LTS, nhưng bạn có thể sử dụng bất kỳ hệ điều hành Debian GNU/Linux nào. Đối với bất kể hệ điều hành Linux nào, bạn nên có kiến thức về nó và biết cách sử dụng để không gây ảnh hưởng trong quá trình quản lý và phát triển phần mềm.

Chuẩn bị

Giả định rằng bạn đã thiết lập và chạy Ubuntu 20.04 và bạn có một tài khoản có quyền truy cập root. Trong các phần tiếp theo, bạn sẽ biết cách cài đặt các dependencies của Odoo và tải các mã nguồn của Odoo về từ Github.

Bạn cần có một tài khoản GitHub để thực hiện việc này. Nếu bạn không có, hãy truy cập github.com để tạo một tài khoản.

Các bước thực hiện

Để cài đặt Odoo, hãy thực hiện các bước sau:

  1. Chạy các câu lệnh sau để cài đặt các dependencies chính:

  2. Tải và cài đặt wkhtmltopdf:

    $ wget https://github.com/wkhtmltopdf/wkhtmltopdf/
    releases/download/0.12.5/wkhtmltox_0.12.5-1.trusty_amd64.
    deb
    $ sudo dpkg -i wkhtmltox_0.12.5-1.trusty_amd64.deb
    

    Nếu bạn tìm thấy lỗi trong một lệnh trước đó, hãy buộc cài đặt các dependencies với lệnh sau:

    $ sudo apt-get install -f
    
  3. Bây giờ, cài đặt cơ sở dữ liệu PostgreSQL:

    $ sudo apt install postgresql -y
    
  4. Cấu hình PostgreSQL:

    $ sudo -u postgres createuser --superuser <username>
    
  5. Cấu hình git:

    $ git config --global user.name "Your Name"
    $ git config --global user.email youremail@example.com
    
  6. Clone mã nguồn của Odoo:

    $ mkdir ~/git
    $ cd ~/git
    $ git clone -b 14.0 https://github.com/Viindoo/odoo odoo14
    
  7. Tạo một môi trường ảo cho Odoo 14 và kích hoạt nó:

    $ sudo apt install python3.8-venv
    $ python3.8 -m venv ~/python-venv/3.8/odoo14
    $ source ~/python-venv/3.8/odoo14/bin/activate
    
  8. Cài đặt các requirement của Odoo trong môi trường ảo:

    $ cd ~/git/odoo14
    $ pip3 install -r requirements.txt
    
  9. Tạo và khởi động instance của bạn:

    $ createdb odoo14
    $ python3 odoo-bin -d odoo14 –i base --addons-path=addons --db-filter=odoo14$
    
  10. Truy cập http://localhost:8069 trên trình duyệt của bạn và đăng nhập bằng tài khoản admin:

    Email: admin
    Password: admin
    

Cơ chế hoạt động

Trong bước 1, bạn đã cài đặt một số dependencies cốt lõi. Những dependencies này bao gồm nhiều công cụ khác nhau như git, pip3, wget,… Những công cụ này sẽ giúp bạn cài đặt những dependencies khác bằng những câu lệnh đơn giản.

Trong bước 2, bạn đã tải xuống và cài đặt wkhtmltopdf, nó được sử dụng để in các tài liệu PDF như hóa đơn, đơn mua và các báo cáo khác. Odoo 14 cần wkhtmltopdf phiên bản 0.12.5. Nếu không cài được chính xác phiên bản đó theo cách này, bạn có thể truy cập wkhtmltopdf.org để tải và cài đặt nó.

Cấu hình PostgreSQL

Trong bước 3, bạn đã cài đặt PostgreSQL.

Trong bước 4, bạn đã tạo một cơ sở dữ liệu mới với tên đăng nhập của hệ thống của bạn.

Odoo sử dụng thư viện Python psycopg2 để kết nối với cơ sở dữ liệu PostgreSQL.

Vì đây là một server dành cho nhà phát triển, nên người dùng được cấp quyền --superuser. Điều này là hợp lý bởi vì đây là instance dành cho nhà phát triển. Đối với instance thật để khách hàng sử dụng, bạn có thể sử dụng dòng lệnh --createdb thay vì --superuser`để hạn chế quyền. Quyền `--superuser trong server thật sẽ có thể tạo ra các lỗ hổng khiến người khác có thể tấn công vào hệ thống của bạn.

Nếu bạn muốn sử dụng cơ sở dữ liệu bằng một tài khoản người dùng khác, bạn cần cung cấp password cho tài khoản người dùng này. Điều này được thực hiện bằng cách sử dụng --pwprompt trên dòng lệnh khi tạo người dùng, khi đó bạn sẽ được yêu cầu nhập mật khẩu.

Nếu người dùng đã được tạo và bạn muốn đặt mật khẩu (hoặc sửa mật khẩu), bạn có thể sử dụng lệnh sau:

$ psql -c "alter role <username> with password <newpassword>"

Nếu lệnh này không thành công với thông báo lỗi nói rằng cơ sở dữ liệu không tồn tại, đó là do bạn đã không tạo cơ sở dữ liệu được đặt tên theo tên đăng nhập của bạn trong bước 4. Lúc này, bạn chỉ cần thêm tùy chọn --dbname với tên của một cơ sở dữ liệu đã tồn tại, ví dụ như --dbname database1.

Cấu hình Git

Đối với môi trường phát triển, nên sử dụng Odoo có nguồn từ Github của Viindoo. Với git, bạn có thể dễ dàng chuyển đổi giữa các phiên bản Odoo khác nhau. Ngoài ra, bạn có thể cập nhật những thay đổi mới nhất bằng lệnh git pull.

Trong bước 5, bạn đã cấu hình người dùng git của mình.

Trong bước 6, bạn đã tải về mã nguồn của bản fork của Odoo phiên bản 14.0 từ Github của Viindoo. Bạn đã sử dụng lệnh git clone để tải mã nguồn về.

Môi trường ảo

Môi trường ảo Python, có thể nói ngắn gọn là venv, là một workspace riêng biệt của Python. Điều này rất hữu ích khi nó cho phép bạn sử dụng nhiều workspace khác nhau, mỗi workspace lại sử dụng các thư viện của Python khác nhau.

Bạn có thể tạo bao nhiêu môi trường ảo tùy thích bằng cách sử dụng lệnh python3.8 -m venv ~/newvenv. Điều này sẽ tạo ra một thư mục newvenv trong một vị trí cụ thể ở máy tính của bạn, thư mục này chứa thư mục con binlib/python3.8.

Trong bước 7, bạn đã tạo ra một môi trường ảo mới trong thư mục ~/python-venv/3.8/odoo14. Đây sẽ là môi trường Python riêng biệt cho Odoo 14 và tất cả các dependencies Python sẽ được cài đặt trong môi trường này.

Để kích hoạt môi trường ảo, chúng ta cần sử dụng lệnh source. Với lệnh source ~/python-venv/3.8/odoo14/bin/activate, bạn đã kích hoạt môi trường ảo của python.

Cài đặt các thư viện python

Mã nguồn của Odoo có một danh sách các dependencies trong file requirements.txt. Trong bước 8, bạn đã cài đặt chúng thông qua lệnh pip3 install. Bây giờ, bạn có thể khởi động instance.

Khởi động instance

Để khởi động instance đầu tiên của mình, trong bước 9, bạn đã tạo một cơ sở dữ liệu trống, sử dụng lệnh odoo-bin và sau đó khởi động instance với dòng lệnh sau:

$ python3 odoo-bin -d odoo14 –i base --addons-path=addons --db-filter=odoo14$

Bạn cũng có thể bỏ qua python3 bằng cách sử dụng ./ trước odoo-bin:

$ ./odoo-bin -d odoo14 –i base --addons-path=addons --db-filter=odoo14$

Với odoo-bin, các tham số sau đây được sử dụng:

  • -d <tên sở dữ liệu>: Mặc định sử dụng cơ sở dữ liệu này.

  • --db-filter=<tên sở dữ liệu>$: Chỉ kết nối với cơ sở dữ liệu này.

  • --addons-path=<thư mục 1>,<thư mục 2>,...: Đây là danh sách các thư mục được phân cách nhau bởi dấu phẩy, trong các thư mục này chứa các module.

  • -i base: Sử dụng để cài đặt module base. Nó được yêu cầu khi bạn tạo một cơ sở dữ liệu thông qua dòng lệnh.

Nếu bạn đang sử dụng cơ sở dữ liệu bằng tài khoản người dùng khác với tài khoản đăng nhập trên máy tính của bạn, bạn cần truyền vào các tham số sau:

  • --db_host=localhost: Sử dụng TCP kết nối tới server cơ sở dữ liệu.

  • --db_user=database_username: Sử dụng một tài khoản đăng nhập cụ thể.

  • --db_password=database_password: Mật khẩu để xác thực lại server PostgreSQL.

Để có cái nhìn tổng quát về tất cả các tùy chọn có sẵn, hãy sử dụng lệnh --help. Bạn sẽ thấy nhiều thông tin hơn về lệnh odoo-bin.

Khi khởi động Odoo trên một cơ sở dữ liệu trống, trước tiên nó sẽ tạo một cấu trúc cơ sở dữ liệu cần thiết để hỗ trợ cho các hoạt động khác của nó. Nó cũng sẽ tìm các module mở rộng trong đường dẫn add-ons và tạo một số bản ghi ban đầu trong cơ sở dữ liệu, bao gồm người dùng admin và mật khẩu mặc định là admin.

Trỏ trình duyệt của bạn đến http://localhost:8069 để vào trang đăng nhập, như ảnh sau:

man-hinh-dang-nhap-instance

Quản lý cơ sở dữ liệu server

Khi làm việc với Odoo, tất cả các dữ liệu trên instance của bạn được lưu trữ tại cơ sở dữ liệu PostgreSQL. VỚi những thao tác cơ bản, bạn nên sử dụng giao diện web để thực hiện dễ dàng hơn.

Chuẩn bị

Bạn cần có 1 instance đang hoạt động.

Các bước thực hiện

Công cụ quản lý cơ sở dữ liệu của Odoo cung cấp các công cụ để tạo, sao chép, xóa, sao lưu và khôi phục cơ sở dữ liệu. Ngoài ra còn có một số cách để thay đổi master password, nó được sử dụng để bảo vệ quyền truy cập vào giao diện quản lý cơ sở dữ liệu.

Truy cập vào giao diện quản lý cơ sở dữ liệu

Để truy cập vào cơ sở dữ liệu, thực hiện các bước sau:

  1. Vào màn hình đăng nhập của bạn (nếu bạn đang đăng nhập, hãy đăng xuất ra).

  2. Bấm vào đường dẫn Manage Databases. Đường dẫn đó thường là http://localhost:8069/web/database/manager (bạn cũng có thể nhập trực tiếp đường dẫn này trên trình duyệt).

quan-ly-database

Thiết lập hoặc thay đổi master password

Nếu bạn đã thiết lập instance của mình với các giá trị mặc định mà chưa từng thay đổi nó, màn hình quản lý cơ sở dữ liệu sẽ hiển thị một cảnh báo, cho bạn biết rằng master password chưa được thiết lập và sẽ khuyên bạn nên đặt một mật khẩu mới.

canh-bao-master-password

Để thiết lập master password, thực hiện các bước sau:

  1. Bấm vào nút Set Master Password. Bạn sẽ thấy một hộp thoại yêu cầu bạn điền master password mới:

    thiet-lap-master-password
  2. Nhập master password mới và ấn nút Continue.

Nếu master password đã được thiết lập, bấm vào nút Set Master Password để thay đổi nó. Khi hộp thoại mở ra, bạn nhập master password cũ và master password mới, rồi bấm Continue.

Note

Master password được lưu trong file ~/.odoorc với từ khóa admin_passwd

Tạo một cơ sở dữ liệu mới

Hộp thoại sau đây có thể được sử dụng để tạo một bản cơ sở dữ liệu mới:

  1. Trong giao diện quản lý cơ sở dữ liệu, bấm vào nút Create Database. Sau đó bạn sẽ thấy hộp thoại sau:

    tao-database
  2. Điền thông tin vào form như sau:

    • Master Password: Master password của instance mà bạn vừa thiết lập ở phần trước.

    • Database Name: Nhập tên cơ sở dữ liệu bạn muốn tạo.

    • Email: Điền vào tên đăng nhập cho tài khoản admin mà bạn muốn tạo. Ví dụ: admin.

    • Password: Mật khẩu cho tài khoản admin.

    • Phone Number: Số điện thoại (có thể bỏ trống).

    • Language: Ngôn ngữ mặc định cho instance.

    • Country: Instance sẽ tự động tạo thông tin cho một công ty, đây là “Quốc gia” cho công ty đó. Một số thông tin cơ bản của công ty sẽ được thiết lập dựa vào “Quốc gia” ví dụ như tiền tệ của công ty chẳng hạn.

    • Demo data: Tích vào nếu bạn muốn kích hoạt chế độ Demo, một số dữ liệu demo sẽ được tạo. Nếu đây chỉ là instance để test thì bạn có thể kích hoạt chế độ này, còn nếu là instance cho công ty sử dụng thật thì không nên.

      Note

      Nếu bạn muốn dùng cơ sở dữ liệu để chạy test tự động, (tham khảo phần Debugging Modules), bạn cần sử dụng dữ liệu demo, vì hầu hết các phần test tự động cần các dữ liệu này để chạy thành công.

  3. Bấm vào nút Continue và đợi cơ sở dữ liệu mới được khởi tạo. Sau đó bạn sẽ được chuyển tới màn hình đăng nhập, hãy đăng nhập bằng tài khoản admin và trải nghiệm phần mềm.

Sao chép cơ sở dữ liệu

Thông thường, khi bạn đã có một cơ sở dữ liệu và bạn muốn thử nghiệm với nó, có thể là một bài test hoặc một số hành động nào đó mà không muốn làm ảnh hưởng đến cơ sở dữ liệu. Giải pháp là bạn sẽ sao chép cơ sở dữ liệu hiện tại và thực hiện test trên bản sao. Cách thực hiện như sau:

  1. Bấm vào nút Duplicate Database và sau đó bạn sẽ thấy hộp thoại sau:

    sao-chep-database
  2. Điền vào các thông tin sau:

    • Master Password: Đây là masster password mà bạn đã thiết lập ở phần trước.

    • New Name: Tên của bản sao cơ sở dữ liệu mà bạn muốn đặt.

  3. Bấm vào nút Continue.

  4. Sau đó bạn sẽ thấy một cơ sở dữ liệu mới trên màn hình quản lý cơ sở dữ liệu, bạn đăng nhập vào nó và sử dụng bình thường.

Xóa cơ sở dữ liệu

Khi bạn kết thúc bài test của mình, bạn muốn xóa bản sao của cơ sở dữ liệu mà bạn vừa sao chép, thực hiện các bước sau:

  1. Trong màn hình quản lý cơ sở dữ liệu, bấm vào nút Delete ở cạnh tên của cơ sở dữ liệu, bạn sẽ nhìn thấy hộp thoại sau:

    xoa-database
  2. Điền master password vào ô Master Password.

  3. Bấm nút Delete.

    Warning

    Nếu bạn chọn sai cơ sở dữ liệu mà không có bản sao lưu, sẽ không có cách nào để lấy lại dữ liệu bị mất.

Sao lưu cơ sở dữ liệu:

Để tạo một bản sao lưu, hãy thực hiện các bước sau:

  1. Trong màn hình quản lý cơ sở dữ liệu, bạn sẽ thấy nút Backup ở cạnh tên của cơ sở dữ liệu. Sau khi bấm vào nó bạn sẽ thấy hộp thoại sau:

    sao-luu-database
  2. Điền các thông tin sau vào form:

    • Master Password: Đây là master password mà bạn thiết lập ở phần trước.

    • Backup Format: Luôn sử dụng định dạng “zip” vì đây là định dạng sẽ sao lưu đầy đủ nhất. Chỉ sử dụng định dạng “pg_dump” khi bạn không quan tâm đến các dữ liệu trên cơ sở dữ liệu.

  3. Bấm vào nút Backup. File sao lưu sẽ được tải về máy tính của bạn.

Khôi phục một bản sao lưu cơ sở dữ liệu

Nếu bạn cần khôi phục một bản sao lưu, thực hiện các bước sau:

  1. Trong màn hình quản lý cơ sở dữ liệu, bạn sẽ thấy nút Restore Database ở dưới cùng. Sau khi bấm vào nó bạn sẽ thấy hộp thoại sau:

    khoi-phuc-database
  2. Điền các thông tin sau vào form:

    • Master Password: Đây là master password mà bạn đã thiết lập ở phần trước.

    • File: Đây là file sao lưu cơ sở dữ liệu.

    • Database Name: Tên mới của cơ sở dữ liệu mà bạn muốn đặt, không được trùng với các cơ sở dữ liệu đang tồn tại.

    • This database might have been moved or copied: Chọn This database was moved nếu cơ sở dữ liệu ban đầu nằm trên một server khác, hoặc nó đã bị xóa đi khỏi server hiện tại. Ngược lại, hãy chọn This database is a copy.

  3. Bấm vào nút Continue.

Cơ chế hoạt động

Maste password là một thông tin rất quan trọng, nó chỉ tồn tại trong file cấu hình server Odoo chứ không bao giờ được lưu trữ trong cơ sở dữ liệu. Bạn cần phân biệt mật khẩu của người dùng admin và master password. Ngay cả khi master password được lưu trữ trong file cấu hình với từ khóa admin_passwd, nhưng nó không phải là mật khẩu của người dùng admin, đây là hai mật khẩu hoàn toàn độc lập. Master password được thiết lập cho server Odoo, nó đươc sử dụng cho nhiều cơ sở dữ liệu, mỗi cơ sở dữ liệu lại có một người dùng admin với mật khẩu riêng.

Warning

Hãy nhớ rằng, giao diện quản lý cơ sở dữ liệu cần phải được bảo mật khi bạn đang làm việc trên một server thật, vì nó có thể để lộ một số thông tin nhạy cảm, đặc biệt khi server lưu trữ các instance cho nhiều khách hàng khác nhau.

Để tạo một cơ sở dữ liệu mới, Odoo sử dụng lệnh createdb và gọi các hàm trong Odoo để khởi tạo một cơ sở dữ liệu mới giống như cách mà bạn tạo một cơ sở dữ liệu trống.

Để sao chép một cơ sở dữ liệu, Odoo sử dụng tùy chọn --template của lệnh createdb. Việc này sẽ sao chép cấu trúc của cơ sở dữ liệu ban đầu sang một cơ sở dữ liệu mới (nhanh hơn nhiều so với việc sao lưu rồi lại phải khôi phục nó).

Các hoạt động sao lưu và khôi phục sử dụng các lệnh pg_dumpg_restore tương ứng.

Mở rộng

Các nhà phát triển có kinh nghiệm thường không sử dụng giao diện quản lý cơ sở dữ liệu mà thực hiện các thao tác từ dòng lệnh. Để khởi tạo một cơ sở dữ liệu mới với dữ liệu demo, có thể sử dụng lệnh một dòng sau:

$ createdb odoo14 && odoo-bin -d odoo14

Bạn có thể thêm tùy chọn -i để cài đặt các module bạn muốn, ví dụ: -i account,project,crm.

Để sao chép cơ sở dữ liệu, dừng server và chạy câu lệnh sau:

$ createdb -T <tên cơ sở dữ liệu muốn sao chép> <tên của cơ sở dữ liệu mới>
$ cd ~/.local/share/Odoo/filestore
$ cp -r <tên cơ sở dữ liệu muốn sao chép> <tên cơ sở dữ liệu mới>
$ cd -

Note

Lệnh createdb -T chỉ hoạt động khi không có phiên hoạt động nào trên cơ sở dữ liệu, nghĩa là bạn buộc phải dừng server trước khi sao chép cơ sở dữ liệu.

Để xóa một instance, chạy câu lệnh sau:

$ dropdb <tên cơ sở dữ liệu>
$ rm -rf ~/.local/share/Odoo/filestore/<tên cơ sở dữ liệu>

Để tạo một bản sao lưu, chạy lệnh sau:

$ pg_dump -Fc -f <tên cơ sở dữ liệu>.dump <tên cơ sở dữ liệu>
$ tar cjf <tên cơ sở dữ liệu>.tgz <tên cơ sở dữ liệu.dump ~/.local/share/Odoo/filestore/<tên cơ sở dữ liệu>

Để khôi phục một bản sao lưu, chạy câu lệnh sau:

$ tar xf <tên cơ sở dữ liệu>.tgz
$ pg_restore -C -d <tên cơ sở dữ liệu> <tên cơ sở dữ liệu>.dump

Thận trọng

Nếu instance của bạn dùng một người dùng khác để kết nối đến cơ sở dữ liệu, bạn cần sử dụng -U <username> để người dùng này chính xác là chủ của cơ sở dữ liệu.

Lưu trữ cấu hình của instance trong một file

Lệnh odoo-bin có rất nhiều tùy chọn nên việc phải ghi nhớ tất cả chúng sẽ khá khó khăn, nhưng rất may là bạn có thể lưu trữ chúng trong một file cấu hình. Bạn chỉ cần xác định thủ công những tùy chọn mà bạn muốn thay đổi khi chạy instance.

Các bước thực hiện

  1. Để tạo file cấu hình cho instance của bạn, hãy chạy lệnh sau:

    $ ./odoo-bin --save --config myodoo.cfg --stop-after-init
    
  2. Bạn có thể thêm các tùy chọn vào trong file này. Tất cả các tùy chọn chưa được thiết lập sẽ được lưu với giá trị mặc định của chúng. Để xem danh sách các tùy chọn khả thi, hãy thực hiện lệnh sau:

    $ ./odoo-bin --help | less
    

    Việc này sẽ cung cấp cho bạn một số trợ giúp về các tùy chọn khác nhau.

  3. Để chuyển đổi từ dòng lệnh sang dạng cấu hình, ở tên của tùy chọn, xóa dấu gạch ngang ở đầu và đổi dấu gạch ngang ở giữa thành dấu gạch dưới. Ví dụ: --addons-path chuyển thành addons_path. Việc này đúng với hầu hết các tùy chọn, tuy nhiên sẽ có một vài trường hợp ngoại lệ được liệt kê ra ở phần sau.

  4. Chỉnh sửa tệp myodoo.cfg (sử dụng bảng trong phần sau để biết một số tham số bạn muốn thay đổi). Sau đó, chạy câu lệnh sau để khởi động server với các tùy chọn đã được lưu:

    $ ./odoo-bin -c myodoo.cfg
    

    Note

    Tùy chọn --config thường được viết tắt là -c.

Cơ chế hoạt động

Khi khởi động, cấu hình sẽ được nạp 3 lần. Đầu tiên, một tập hợp các giá trị mặc định của tất cả tùy chọn được khởi tạo từ mã nguồn. Tiếp theo, file cấu hình sẽ được phân tích, các giá trị được xác định trong file sẽ ghi đè lên các giá trị mặc định. Cuối cùng, các tùy chọn trên dòng lệnh được phân tích và giá trị của chúng sẽ ghi đè lên các giá trị trước đó.

Như ở phần trước đã nhắc tới, tên của các tùy chọn trong file cấu hình được xác định từ tên của các tùy chọn trên dòng lệnh, bỏ dấu gạch ngang ở đầu và thay dấu gạch ngang ở giữa bằng dấu gạch dưới. Sau đây là một số trường hợp ngoại lệ:

Dòng lệnh

File cấu hình

–db-filter

dbfilter

–no-http

http_enable = True/False

–database

db_name

–dev

dev_mode

–i18n-import/–i18n-export

không có

Dưới đây là danh sách các tùy chọn thường được thiết lập trong file cấu hình:

Tùy chọn

Định dạng

Cách sử dụng

without_demo

Danh sách tên module được phân cách nhau bởi dấu phẩy

Tác dụng của nó là ngăn không cho dữ liệu demo được nạp. Dùng all để vô hiệu hóa dữ liệu demo của tất cả các module. Dùng False để kích hoạt dữ liệu demo của tất cả các module. Nếu bạn muốn vô hiệu hóa dữ liệu demo của các module cụ thể, truyền vào tên của các module, ví dụ: invoice,project,crm.

addons_path

Danh sách các đường dẫn được phân cách nhau bởi dấu phẩy

Đây là danh sách tên của các thư mục mà chứa các module.

admin_passwd

Text

Đây là master password.

data_dir

Đường dẫn tới thư mục

Đây là một thư mục nơi mà server sẽ lưu trữ thông tin phiên, các module được tải về từ internet, và các tài liệu.

http_port longpolling_port

Số của cổng

cách nhau bởi dấu phẩy

Đây là các cổng mà trên đó instance sẽ lắng nghe. Bạn sẽ cần xác định cả hai cổng này khi chạy nhiều instance trên cùng một server. longpolling_port chỉ hoạt động khi khác 0. http_port mặc định là 8069, longpolling_port mặc định là 8072.

logfile

Đường dẫn tới file

Đây là một file mà Odoo sẽ ghi lại các “log”.

log_level

Cấp độ chi tiết của “log”

Chỉ định cấp độ của “log”. Sau đây là các giá trị được chấp nhận (cấp độ tăng dần): critical, error, warn, info, debug, debug_rpc, debug_rpc_anser, debug_sql.

worker

Interger

Số luồng hoạt động.

proxy_mode

True/False

Kích hoạt WSGI. Chỉ bật nó khi chạy dưới một proxy đáng tin cậy.

Dưới đây là danh sách các tùy chọn cấu hình liên quan đến cơ sở dữ liệu:

Tùy chọn

Định dạng

Cách sử dụng

db_host

Hostname

Đây là tên của server đang chạy PostgreSql. Sử dụng False để dùng socket Unix, và localhost để dùng socket TCP.

db_user

Tên đăng nhập của người dùng cơ sở dữ liệu

Thường được để trống nếu db_hostFalse.

db_password

Mật khẩu của người dùng cơ sở dữ liệu

Thường được để trống nếu db_hostFalsedb_user cùng tên với người đang chạy server. Đọc file pg_hba.conf để biết thêm chi tiết.

db_sslmode

Giao thức SSL

Dùng để xác định giao thức SSL.

dbfilter

Một biểu thức

Biểu thức này sẽ khớp với tên của cơ sở dữ liệu trên server, trông nó như thế này: . <tên sở dữ liệu>$.

list_db

True/False

Đặt bằng True để vô hiệu hóa danh sách cơ sở dữ liệu.

Một số tùy chọn không được sử dụng trong các file cấu hình, nhưng chúng được sử dụng rộng rãi trong quá trình phát triển phần mềm:

Tùy chọn

Định dạng

Cách sử dụng

-i hoặc –init

Danh sách tên module được phân cách nhau bởi dấu phẩy

Mặc định nó sẽ cài các module này khi khởi tạo cơ sở dữ liệu.

-u hoặc –update

Danh sách tên module được phân cách nhau bởi dấu phẩy

Các module này sẽ được cập nhật khi bạn khởi động lại server. Nó hầu như được sử dụng khi bạn chỉnh sửa mã nguồn hoặc cập nhật các nhánh về từ git.

–dev

all, reload, qweb, werkzeug, và xml

Nó sẽ kích hoạt chế độ nhà phát triển và tự động nạp lại các tính năng.

Kích hoạt công cụ dành cho nhà phát triển

Khi sử dụng Odoo với tư cách là nhà phát triển, bạn cần biết cách kích hoạt chế độ nhà phát triển trên giao diện web để có thể truy cập vào menu setting và xem các thông tin dành cho nhà phát triển. Bật chế độ gỡ lỗi (debug) sẽ hiển thị một số tùy chọn cấu hình nâng cao và một số trường mới. Khi chưa bật chế độ gỡ lỗi, các trường này được ẩn đi trên giao diện để có trải nghiệm người dùng tốt hơn, vì chúng không cần thiết được sử dụng thường xuyên.

Các bước thực hiện

Để kích hoạt chế độ nhà phát triển trên giao diện web, thực hiện các bước sau:

  1. Đăng nhập vào instance của bạn bằng tài khoản admin.

  2. Vào menu Settings.

  3. Kéo xuống dưới cùng và tìm phần Developer Tools:

    kich-hoat-che-do-nha-phat-trien
  4. Bấm vào đường dẫn Activate the developer mode.

  5. Đợi giao diện được cập nhật lại.

Tip

Bạn cũng có thể kích hoạt chế độ nhà phát triển bằng cách chỉnh sửa URL. Trước ký tự #, chèn ?debug=1. Ví dụ, nếu URL hiện tại của bạn là http://localhost:8069/web#menu_id=89&action=112, bạn cần sửa nó thành http://localhost:8069/web?debug=1#menu_id=89&action=112. Hơn nữa, nếu bạn muốn bật chế độ gỡ lỗi với assets, sửa URL thành http://localhost:8069/web?debug=assets#menu_id=89&action=112.

Để thoát chế độ nhà phát triển, bạn có thể thực hiện bất kỳ hành động nào sau đây:

  • Sửa URL với ?debug=0.

  • Bấm vào đường dẫn Deactivate the developer mode trong menu Settings, nó ở cùng vị trí với đường dẫn Activate the developer mode đã nêu ở trên.

  • Bấm vào biểu tượng “con bọ” ở bên phải trên thanh menu và sau đó bấm vào Leave Developer Tools.

Cơ chế hoạt động

Khi ở chế độ nhà phát triển, có hai điều sau xảy ra:

  • Bạn sẽ nhìn thấy phần chú giải khi di chuột vào một trường trên form view hoặc một cột trên list view, cung cấp các thông tin kỹ thuật về trường đó (tên, loại và một số thông tin khác).

  • Ở phía bên phải của thanh menu, bạn sẽ nhìn thấy biểu tượng hình “con bọ”, nó cung cấp các thông tin kỹ thuật về model đang được hiển thị, các phần khai báo view, các bộ lọc tùy chỉnh và một số thông tin khác.

Có một biến thể của chế độ nhà phát triển, đó là chế độ nhà phát triển với assets (kích hoạt nó bằng cách thêm ?debug=assets trên URL). Chế độ này hoạt động giống như chế độ nhà phát triển thông thường, nhưng ngoài ra, các mã JavaScrip và CSS được đưa đến trình duyệt mà không bị nén lại, nghĩa là bạn có thể dễ dàng sử dụng công cụ phát triển của trình duyệt để gỡ lỗi mã JavaScript (tìm hiểu thêm ở Web Client Development).

Thận trọng

Kiểm tra các module của bạn cả khi ở chế độ nhà phát triển và khi không ở chế độ nhà phát triển. Vì có thể một số lỗi chỉ xuất hiện khi không ở chế độ nhà phát triển.

Cập nhật danh sách module:

Khi bạn thêm một module mới, hệ thống sẽ không biết được là có module này, vì thế bạn cần cập nhật danh sách module.

Chuẩn bị

Khởi động instance của bạn và đăng nhập bằng tài khoản admin. Sau đó, hãy kích hoạt chế độ nhà phát triển (tham khảo phần Kích hoạt công cụ dành cho nhà phát triển).

Quy trình thực hiện

Để cập nhật danh sách module trên instance của bạn, thực hiện các bước sau:

  1. Vào menu Apps.

  2. Bấm vào Update Apps List:

    cap-nhat-danh-sach-module
  3. Khi hộp thoại mở lên, bấm vào nút Update.

  4. Sau khi quá trình cập nhật kết thúc, bạn vào lại menu Apps để xem danh sách module mới được cập nhật, bạn cần bỏ bộ lọc Apps trong thanh tìm kiếm để nhìn thấy tất cả module.

Cơ chế hoạt động

Khi bấm vào nút Update, Odoo sẽ kiểm tra các thư mục trên đường dẫn add-ons. Với mỗi thư mục này, nó sẽ tìm kiếm các thư mục con chứa file __manifest__.py. Nếu module đã tồn tại, thông tin của module sẽ được cập nhật. Nếu không, một bản ghi mới sẽ được tạo trong cơ sở dữ liệu. Nếu một module trước đây đã tồn tại, nhưng giờ không tìm thấy nữa, thì nó cũng không được xóa khỏi danh sách module.

Note

Bạn chỉ cần cập nhật danh sách module nếu bạn thêm module mới sau khi khởi tạo cơ sở dữ liệu. Nếu module được thêm trước khi khởi tạo dữ liệu, bạn không cần cập nhật danh sách module.

Tổng kết lại, sau khi cài đặt, bạn có thể khởi động server bằng cách sử dụng dòng lệnh sau (nếu bạn sử dụng môi trường ảo, thì bạn cần phải kích hoạt nó trước):

python3 odoo-bin -d odoo-odoo14 -i base --addons-path=addons --db-filter=odoo14

Khi bạn muốn sử dụng một module, bạn cần truy cập http://localhost:8069.

Bạn cũng có thể sử dụng file cấu hình để khởi động server như dưới đây:

./odoo-bin -c myodoo.cfg

Khi bạn đã khởi động server, bạn có thể cài đặt và nâng cấp các module từ menu App.