You are on page 1of 60

Cài đặt môi trường phát triển Odoo

Trong chương này, chúng tôi sẽ đề cập đến các chủ đề sau:

1
MỤC LỤC

Cài đặt môi trường phát triển Odoo ...........................................................................1


Giới thiệu ...............................................................................................................3
1. Dễ dàng cài đặt Odoo từ nguồn ...........................................................................4
Sẵn sàng .................................................................................................................5
Làm thế nào để làm nó... ........................................................................................6
Làm thế nào nó hoạt động... .................................................................................11
Môi trường ảo ......................................................................................................13
Cấu hình PostgreSQL ..........................................................................................16
Cấu hình Git .........................................................................................................17
Tải xuống mã nguồn Odoo ..................................................................................18
Bắt đầu ví dụ ........................................................................................................19
Có nhiều… ...........................................................................................................21
2. Quản lý môi trường Odoo bằng lệnh start .........................................................22
Sẵn sàng ...............................................................................................................22
Làm thế nào để làm nó... ......................................................................................23
Làm thế nào nó hoạt động... .................................................................................24
Còn nữa ................................................................................................................24
3. Quản lý cơ sở dữ liệu máy chủ Odoo ................................................................25
Sẵn sàng ...............................................................................................................25
Làm thế nào để làm nó... ......................................................................................26
Truy cập vào giao diện quản lý cơ sở dữ liệu ......................................................26
Đặt hoặc thay đổi mật khẩu chính .......................................................................27
Tạo cơ sở dữ liệu mới ..........................................................................................29
Sao chép cơ sở dữ liệu .........................................................................................32
Xóa cơ sở dữ liệu .................................................................................................34

2
Sao lưu cơ sở dữ liệu............................................................................................35
Khôi phục sao lưu cơ sở dữ liệu ..........................................................................36
Làm thế nào nó hoạt động... .................................................................................38
Có nhiều... ............................................................................................................41
5. Lưu trữ cấu hình cá thể trong một tệp ...............................................................43
Làm thế nào để làm nó... ......................................................................................44
Làm thế nào nó hoạt động... .................................................................................45
Có nhiều... ............................................................................................................49
6. Kích hoạt công cụ phát triển Odoo ....................................................................50
Làm thế nào để làm nó... ......................................................................................51
Làm thế nào nó hoạt động... .................................................................................54
7. Cập nhật Odoo từ nguồn ....................................................................................55
Sẵn sàng ...............................................................................................................55
Làm thế nào để làm nó... ......................................................................................56
Làm thế nào nó hoạt động... .................................................................................59

Giới thiệu

Có rất nhiều cách để thiết lập một môi trường phát triển Odoo. Chương này
đề xuất một trong những chương này, mặc dù bạn chắc chắn sẽ tìm thấy một số
hướng dẫn khác trên web giải thích các cách tiếp cận khác. Hãy nhớ rằng chương
3
này là về một môi trường phát triển, có các yêu cầu khác nhau từ môi trường sản
xuất, được đề cập trong Chương 16, Triển khai máy chủ.

1. Dễ dàng cài đặt Odoo từ nguồn

Để triển khai Odoo, bạn nên sử dụng môi trường GNU / Linux. Bạn có thể
thoải mái hơn khi sử dụng Microsoft Windows hoặc Mac OS X, nhưng thực tế là
hầu hết các nhà phát triển Odoo đang sử dụng GNU / Linux và bạn có nhiều khả
năng nhận được sự hỗ trợ từ cộng đồng cho các vấn đề cấp hệ điều hành xảy ra trên
GNU / Linux hơn trên Windows.

4
Nó cũng được khuyến khích để phát triển bằng cách sử dụng cùng một môi
trường (cùng một phân phối, cùng một phiên bản) như là một trong đó sẽ được sử
dụng trong sản xuất. Điều này sẽ tránh những bất ngờ khó chịu như khám phá vào
ngày triển khai mà một số thư viện có phiên bản khác với dự kiến, với hành vi hơi
khác và không tương thích. Nếu máy trạm của bạn đang sử dụng một hệ điều hành
khác, cách tiếp cận tốt là thiết lập một máy ảo trên máy trạm của bạn và cài đặt
một bản phân phối GNU / Linux trong máy ảo.

Để tránh sao chép các tập tin giữa máy trạm của bạn nơi bạn đang
chạy môi trường phát triển của bạn và máy ảo chạy Odoo, bạn có
thể cấu hình một SAMBA chia sẻ bên trong máy ảo và lưu trữ mã
nguồn ở đó. Sau đó, bạn có thể gắn kết chia sẻ trên máy trạm của
mình để chỉnh sửa các tệp một cách dễ dàng.

Cuốn sách này giả định rằng bạn đang chạy Debian GNU / Linux làm phiên
bản ổn định của nó (Jessie tại thời điểm viết bài). Ubuntu là một lựa chọn phổ biến
khác, và vì nó được xây dựng trên Debian, hầu hết các ví dụ trong cuốn sách này
sẽ hoạt động không thay đổi. Bất kể phân phối Linux nào bạn chọn, bạn nên có
một số khái niệm về cách sử dụng nó từ dòng lệnh, và có một vài ý tưởng về quản
trị hệ thống chắc chắn sẽ không gây hại gì.

Sẵn sàng

5
Chúng tôi giả định rằng Linux đang hoạt động và bạn có một tài khoản có
quyền truy cập root, hoặc vì bạn biết mật khẩu gốc hoặc vì sudo đã được cấu hình.
Trong các trang sau, chúng tôi sẽ sử dụng $ (whoami) bất cứ khi nào đăng nhập
của người dùng công việc của bạn được yêu cầu trong một dòng lệnh. Đây là lệnh
shell sẽ thay thế thông tin đăng nhập của bạn trong lệnh bạn đang gõ.

Một số thao tác chắc chắn sẽ dễ dàng hơn nếu bạn có tài khoản GitHub. Truy cập
https://github.com và tạo một tài khoản nếu bạn chưa có.

Làm thế nào để làm nó...

Để cài đặt Odoo từ nguồn, bạn cần làm theo các bước sau:

1. Chạy các lệnh sau để cài đặt các phụ thuộc chính:
$ sudo apt-get cài đặt git python2.7 postgresql nano \python-virtualenv
2. Tải xuống và cài đặt wkhtmltopdf:

6
$ wget http://nightly.odoo.com/extra/wkhtmltox-0.12.1.2_linuxjessie-
amd64.deb
$ sudo dpkg -i wkhtmltox-0.12.1.2_linux-jessie-amd64.deb

Thận trọng!

Đây là một gói được cung cấp bởi người bảo trì Odoo cho Debian
Jessie. Nếu bạn đang sử dụng phân phối khác, hãy duyệt đến http:
// tải xuống. gna.org/wkhtmltopdf/0.12/0.12.1/ và tải xuống gói cho
hệ điều hành của bạn.

3. Bây giờ, sử dụng điều này để cài đặt các phụ thuộc xây dựng:

7
$ sudo apt-get cài đặt gcc python2.7-dev libxml2-dev \
libxslt1-dev libevent-dev libsasl2-dev libldap2-dev libpq-dev \ libpng12-dev
libjpeg-dev

4. Định cấu hình PostgreSQL:


$ sudo -u postgres createuser --createdb $ (whoami)
$ createdb $ (whoami)
5. Cấu hình git:

$ git config --global user.name "Tên của bạn"


$ git config --global user.email youremail@example.com

6. Sao chép cơ sở mã Odoo:


$ mkdir ~ / odoo-dev
$ cd ~ / odoo-dev
$ git clone -b 9.0 --single-branch https://github.com/odoo/odoo.git
$ cd odoo

7. Tạo môi trường ảo odoo-9.0 và kích hoạt nó:


$ virtualenv ~ / odoo-9,0
$ source ~ / odoo-9.0 / bin / kích hoạt

8. Cài đặt các phụ thuộc Python của Odoo trong virtualenv:
$ pip install -r requirements.txt

8
9. Tạo và bắt đầu các phiên bản Odoo đầu tiên của bạn:
$ createdb odoo-test

$ python odoo.py -d odoo-test --addons-path = addons \


--dbfilter = odoo-test $

9
10. Hướng trình duyệt của bạn đến http: // localhost: 8069 và xác thực bằng tài
khoản quản trị và quản trị viên làm mật khẩu.

Bạn có thể tải xuống các tệp mã ví dụ cho sách này từ tài khoản của
bạn tại http://www.packtpub.com. Nếu bạn đã mua cuốn sách này ở
nơi khác, bạn có thể truy cập http://www.packtpub.com/support và
đăng ký để các tệp được gửi trực tiếp qua email cho bạn. Bạn có thể
tải xuống các tệp mã bằng cách làm theo các bước sau:

 Đăng nhập hoặc đăng ký vào trang web của chúng tôi
bằng địa chỉ email và mật khẩu của bạn

 Di con trỏ chuột trên tab H SUP TRỢ ở trên cùng

 Nhấp vào Tải xuống mã & Errata

 Nhập tên của sách vào ô Tìm kiếm

 Chọn sách bạn muốn tải xuống các tệp mã

 Chọn từ trình đơn thả xuống nơi bạn đã mua sách này
từ

 Nhấp vào Mã Tải xuống

Bạn cũng có thể tải xuống các tệp mã bằng cách nhấp vào nút Mã
tệp trên trang web của cuốn sách tại trang web Xuất bản Packt. Bạn
có thể truy cập trang này bằng cách nhập tên sách vào hộp Tìm
kiếm. Xin lưu ý rằng bạn cần đăng nhập vào tài khoản Packt của
mình.

 Khi tệp được tải xuống, hãy đảm bảo rằng bạn giải nén
hoặc trích xuất thư mục bằng phiên bản mới nhất của:

 f WinRAR / 7-Zip cho Windows

10
 f Zipeg / iZip / UnRarX dành cho Mac

 f 7-Zip / PeaZip cho Linux

Làm thế nào nó hoạt động...

Phụ thuộc đến từ nhiều nguồn khác nhau. Đầu tiên, bạn có các phụ thuộc cốt
lõi của Odoo, trình thông dịch Python được sử dụng để chạy mã nguồn và máy chủ
cơ sở dữ liệu PostgreSQL được sử dụng để lưu trữ dữ liệu cá thể. Git được sử dụng
cho phiên bản mã nguồn và nhận mã nguồn của chính Odoo

Vì chúng ta sẽ cần phải chỉnh sửa một số tệp dưới dạng root hoặc dưới dạng
postgres (người dùng quản trị PostgreSQL) trên máy chủ của chúng ta, chúng ta
cần phải cài đặt một trình soạn thảo văn bản dựa trên bàn điều khiển. Chúng tôi đề

11
xuất nano vì nó rất dễ sử dụng, nhưng bạn có thể thoải mái chọn bất kỳ trình chỉnh
sửa nào mà bạn cảm thấy thoải mái miễn là nó hoạt động trên bảng điều khiển,
chẳng hạn như vim, e3 hoặc emacs-nox.

Wkhtmltopdf là một phụ thuộc thời gian chạy của Odoo được sử dụng để tạo
ra các báo cáo PDF. Phiên bản được yêu cầu bởi Odoo 9.0 là 0.12.1, không có
trong bản phân phối GNU / Linux hiện tại. May mắn cho chúng tôi, các nhà bảo trì
của wkhtmltopdf cung cấp các gói dựng sẵn cho các bản phân phối khác nhau trên
http://wkhtmltopdf.org/downloads.html (trong phần lưu trữ). Tuy nhiên, Debian
Jessie không có ở đó, vì vậy các nhà duy trì Odoo cung cấp phiên bản gói của riêng
họ trên http://nightly.odoo.com/extra/.

Có rất nhiều phụ thuộc thời gian chạy khác là các mô-đun Python, chúng ta
có thể cài đặt bằng pip trong môi trường ảo. Tuy nhiên, một số mô-đun Python này
có thể làm nổi bật một số phụ thuộc vào các thư viện C gốc mà cần phải biên dịch
các ràng buộc Python. Do đó, chúng tôi cài đặt các gói phát triển cho các thư viện
C này cũng như gói phát triển Python và trình biên dịch C. Một khi các phụ thuộc
xây dựng này được cài đặt, chúng ta có thể sử dụng pip -r requirements.txt (một tệp
đến từ phân phối mã nguồn Odoo) để tải xuống, biên dịch và cài đặt các mô-đun
Python

12
Môi trường ảo

Môi trường ảo Python, hoặc virtualenv cho ngắn, được phân lập không gian
làm việc Python. Chúng rất hữu ích cho các nhà phát triển Python vì chúng cho
phép các không gian làm việc khác nhau với các phiên bản khác nhau của các thư
viện Python khác nhau được cài đặt, có thể trên các phiên bản thông dịch Python
khác nhau.

Bạn có thể tạo nhiều môi trường như bạn muốn bằng cách sử dụng lệnh
virtualenv path / to / newenv. Điều này sẽ tạo một thư mục newenv ở vị trí đã chỉ
định, chứa thư mục bin / subdirectory và thư mục con lib / python2.7.

Trong bin / bạn sẽ tìm thấy một số tập lệnh:

 kích hoạt: Tập lệnh không được thực hiện, nó có nguồn gốc bằng cách sử
dụng trình bao mã nguồn được tích hợp sẵn. Điều này sẽ kích hoạt môi
trường bằng cách điều chỉnh biến môi trường PATH để bao gồm thư mục
bin / của virtualenv. Nó cũng cài đặt một hàm shell được gọi là deactivate,

13
mà bạn có thể chạy để thoát virtualenv và thay đổi dấu nhắc trình bao để cho
bạn biết virtualenv nào hiện đang được kích hoạt

 pip: Đây là phiên bản đặc biệt của lệnh pip chỉ hoạt động bên trong
virtualenv.

 python: Đây là một trình bao bọc xung quanh trình thông dịch Python hệ
thống của bạn, sử dụng các gói được cài đặt trong virtualenv.

Vỏ nguồn được tích hợp sẵn cũng có sẵn (dưới dạng một dấu chấm
đơn, theo sau là dấu cách và đường dẫn đến tệp tới nguồn). Biểu
mẫu lối tắt là hoàn toàn tốt đẹp, nhưng chúng tôi sẽ dính vào nguồn
trong cuốn sách này để dễ đọc.

Có hai cách chính để sử dụng virtualenv. Bạn có thể kích hoạt nó khi chúng
ta hiển thị trong recipe (và gọi tắt khi bạn đã hoàn thành) hoặc bạn có thể sử dụng
các script trong bin / directory của môi trường một cách rõ ràng bằng cách gọi
chúng với đường dẫn đầy đủ của chúng, trong trường hợp này bạn không cần kích
hoạt virtualenv. Điều này chủ yếu là một vấn đề của hương vị, vì vậy bạn nên thử
nghiệm và tìm ra phong cách phù hợp với bạn tốt hơn cho trường hợp đó.

14
Bạn có thể có các tập lệnh Python thực thi với dòng đầu tiên trông giống như
sau:

#! / usr / bin / env python

Chúng sẽ dễ sử dụng hơn với virtualenv được kích hoạt. Đây là trường hợp
với kịch bản lệnh odoo.py, do đó bạn có thể gọi theo cách sau:

$ ./odoo.py -d odoo-test --addons-path = addons --db-filter = odoo-test $

15
Cấu hình PostgreSQL

Trên hệ thống GNU / Linux, Odoo hoạt động rất tốt với các giá trị mặc định
của psycopg2, mô đun Python được sử dụng để truy cập cơ sở dữ liệu PostgreSQL:

 Xác thực mật khẩu nếu người dùng cơ sở dữ liệu có cùng tên với người dùng
hiện tại trên các kết nối cục bộ

 Kết nối cục bộ sử dụng các ổ cắm miền Unix

 Máy chủ cơ sở dữ liệu lắng nghe trên cổng 5432

Trong trường hợp đó, không có gì đặc biệt để làm: chúng tôi sử dụng người
dùng quản trị postgres để tạo người dùng cơ sở dữ liệu chia sẻ tên đăng nhập của
chúng tôi và cấp cho nó quyền tạo cơ sở dữ liệu mới. Sau đó chúng tôi tạo một cơ
sở dữ liệu mới có cùng tên với người dùng mới, sẽ được sử dụng làm cơ sở dữ liệu
mặc định khi sử dụng lệnh psql.

Khi trên một máy chủ phát triển, nó là OK để cung cấp cho người dùng
PostgreSQL nhiều quyền hơn và sử dụng tùy chọn dòng lệnh --superuser thay vì
chỉ --createdb. Hiệu ứng ròng là người dùng này sau đó có thể tạo ra những người
dùng khác và quản lý toàn bộ cá thể cơ sở dữ liệu. Nếu bạn cảm thấy - superuser là
quá nhiều, bạn vẫn có thể muốn sử dụng --createrole ngoài --createdb khi tạo người
dùng cơ sở dữ liệu của bạn. Tránh làm điều này trên các máy chủ sản xuất vì nó sẽ
cung cấp thêm đòn bẩy cho kẻ tấn công khai thác lỗ hổng trong một số phần của
mã được triển khai (xem Chương 16, Triển khai máy chủ).

16
Nếu bạn muốn sử dụng người dùng cơ sở dữ liệu với thông tin đăng nhập
khác, bạn sẽ cần phải cung cấp mật khẩu cho người dùng. Điều này được thực hiện
bằng cách chuyển cờ --pwprompt trên dòng lệnh khi tạo người dùng, trong trường
hợp đó lệnh sẽ nhắc bạn 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 đổi mật
khẩu đã quên), bạn có thể sử dụng lệnh sau:

$ psql -c "thay đổi vai trò $ (whoami) bằng mật khẩu 'newpassword'"

Nếu lệnh này không thành công với một thông báo lỗi nói rằng cơ
sở dữ liệu không tồn tại, đó là vì bạn đã không tạo ra một cơ sở dữ
liệu có tên sau tên đăng nhập của bạn trong bước 3. Điều đó tốt; chỉ
cần thêm tùy chọn --dbname với tên cơ sở dữ liệu hiện có như --
dbname template1.

Cấu hình Git

Tại một số thời điểm trong cuốn sách, bạn sẽ cần phải sử dụng git commit.
Điều này sẽ thất bại trừ khi một số cấu hình cơ bản được thực hiện; bạn cần cung
cấp cho Git tên và địa chỉ email của bạn. Git sẽ nhắc bạn làm điều này với một
thông báo lỗi tốt đẹp, nhưng bạn cũng có thể làm điều đó ngay bây giờ.

Đây cũng là điều cần lưu ý nếu bạn đang sử dụng dịch vụ như
Travis để tích hợp liên tục và kịch bản thử nghiệm của bạn cần

17
thực hiện một số kết hợp git: bạn phải cung cấp tên giả và e-mail để
hợp nhất thành công.

Tải xuống mã nguồn Odoo

Tải xuống cơ sở mã Odoo được thực hiện bằng cách thực hiện thao tác sao
chép git. Hãy kiên nhẫn vì điều này sẽ mất một thời gian. Các tùy chọn --branch
9.0 --single-branch tránh tải xuống các nhánh khác và tiết kiệm một chút thời gian.
Tùy chọn --depth cũng có thể được sử dụng để tránh tải xuống toàn bộ lịch sử kho
lưu trữ, nhưng nhược điểm của tùy chọn đó là bạn sẽ không thể khám phá lịch sử
đó khi tìm kiếm các vấn đề.

Các nhà phát triển Odoo cũng đề xuất các bản dựng hàng đêm, có sẵn dưới
dạng tarballs và các gói phân phối. Ưu điểm chính của việc sử dụng một bản sao
git là bạn sẽ có thể cập nhật kho lưu trữ của bạn khi sửa lỗi mới được cam kết
trong cây nguồn. Bạn cũng sẽ có thể dễ dàng kiểm tra mọi bản sửa lỗi được đề xuất
và theo dõi hồi quy, do đó bạn có thể làm cho báo cáo lỗi của mình chính xác hơn
và hữu ích hơn cho nhà phát triển.

18
Bắt đầu ví dụ

Bây giờ đến thời điểm bạn đã chờ đợi. Để bắt đầu thể hiện đầu tiên của
chúng ta, trước tiên chúng ta tạo một cơ sở dữ liệu rỗng mới và sau đó sử dụng
kịch bản lệnh odoo.py với các đối số dòng lệnh sau đây:

 -d database_name: Sử dụng cơ sở dữ liệu đó theo mặc định.

 --db-filter = database_name $: Chỉ cố gắng kết nối với cơ sở dữ liệu khớp


với biểu thức chính quy được cung cấp. Một cài đặt Odoo có thể phục vụ
nhiều cá thể sống trong các cơ sở dữ liệu riêng biệt và đối số này giới hạn
các cơ sở dữ liệu có sẵn. Dấu $ là quan trọng vì cụm từ thông dụng được sử

19
dụng trong chế độ đối sánh; điều này tránh việc chọn tên bắt đầu bằng chuỗi
được chỉ định.

 --addons-path = directory1, directory2, ...: Đây là danh sách các thư mục
được phân tách bằng dấu phẩy trong đó Odoo sẽ tìm kiếm các addons. Danh
sách này được quét tại thời điểm tạo cá thể để điền danh sách các mô đun bổ
sung sẵn có trong cá thể.

Nếu bạn đang sử dụng người dùng cơ sở dữ liệu với thông tin đăng nhập cơ
sở dữ liệu khác với thông tin đăng nhập Linux của mình, bạn cần phải chuyển các
đối số bổ sung sau đây:

 --db_host = localhost: sử dụng kết nối TCP tới máy chủ cơ sở dữ liệu

 --db_user = database_username: sử dụng đăng nhập cơ sở dữ liệu được chỉ


định

 --db_password = database_password: mật khẩu để sử dụng để xác thực đối


với máy chủ PostgreSQL

Để xem tổng quan về tất cả các tùy chọn có sẵn, hãy sử dụng đối số --help.
Chúng ta sẽ thấy nhiều hơn về kịch bản odoo.py trong chương này cũng như trong
Chương 2, Quản lý các trường hợp máy chủ Odoo.

Khi Odoo được khởi động trên một cơ sở dữ liệu rỗng, trước tiên nó sẽ tạo
cấu trúc cơ sở dữ liệu cần thiết để hỗ trợ các hoạt động của nó. Nó cũng sẽ quét
đường dẫn addons để tìm các module addon có sẵn và chèn một số bản ghi ban đầu
vào cơ sở dữ liệu. Điều này bao gồm người dùng quản trị với quản trị viên mật
khẩu mặc định mà bạn sẽ sử dụng để xác thực.

Odoo bao gồm một máy chủ HTTP. Theo mặc định, nó lắng nghe trên tất cả
các giao diện mạng cục bộ trên cổng TCP 8069 để trỏ trình duyệt web của bạn tới
http: // localhost: 8069 / dẫn bạn đến cá thể mới được tạo của bạn.

20
Có nhiều…

Trong công thức, chúng tôi đã tải xuống phiên bản ổn định mới nhất của
Odoo bằng cách sử dụng lệnh sau:

$ git clone -b 9.0 --single-branch https://github.com/odoo/odoo.git

Điều này sử dụng các chi nhánh chính thức được duy trì bởi Odoo. Một vấn
đề với ngành này là các bản sửa lỗi do cộng đồng đóng góp không phải lúc nào
cũng được hợp nhất một cách kịp thời. Hiệp hội cộng đồng Odoo (OCA) duy trì
một nhánh song song trong đó các bản sửa lỗi và cải tiến được cộng đồng xem xét
ngang hàng và có xu hướng sáp nhập nhanh hơn so với chi nhánh chính thức. Nó
không phải là một nhánh của Odoo, và phiên bản mới nhất của Odoo được sáp
nhập trở lại vào nhánh đó hàng ngày. Bạn có thể muốn sử dụng nó cho sự phát
triển và triển khai của bạn, trong trường hợp đó bạn cần sao chép Odoo như thế
này:

$ git clone -b 9.0 - chi nhánh đơn giản https://github.com/OCA/OCB.git


odoo

21
2. Quản lý môi trường Odoo bằng lệnh start

Chúng tôi thường sẽ muốn sử dụng các mô-đun tùy chỉnh hoặc cộng đồng
với cá thể Odoo của chúng tôi. Giữ chúng trong một thư mục riêng biệt giúp dễ
dàng cài đặt bản nâng cấp lên Odoo hoặc khắc phục sự cố từ các mô-đun tùy chỉnh
của chúng tôi. Chúng ta chỉ cần thêm thư mục đó vào đường dẫn addons và chúng
sẽ có sẵn trong thể hiện của chúng ta, giống như các mô-đun lõi. Có thể nghĩ về
thư mục mô-đun này như một môi trường Odoo. Lệnh bắt đầu Odoo giúp dễ dàng
tổ chức các cá thể Odoo dưới dạng các thư mục, mỗi thư mục có các mô đun riêng
của nó.

Sẵn sàng

Đối với công thức này, chúng ta cần phải cài đặt Odoo. Chúng tôi giả định
rằng nó sẽ ở

22
~ / odoo-dev / odoo, và virtualenv được kích hoạt.

Điều này có nghĩa là lệnh sau sẽ khởi động thành công máy chủ Odoo:

$ ~ / odoo-dev / odoo / odoo.py

Làm thế nào để làm nó...

Để tạo môi trường làm việc cho cá thể của bạn, bạn cần làm theo các bước
sau:

1. Thay đổi thư mục nơi Odoo là:


$ cd ~ / odoo-dev

2. Chọn tên cho môi trường và tạo một thư mục cho nó:
$ mkdir my-odoo

3. Thay đổi thư mục đó và bắt đầu một cá thể máy chủ Odoo cho môi trường đó:
$ cd my-odoo /
$ ../odoo/odoo.py bắt đầu

23
Làm thế nào nó hoạt động...

Lệnh khởi động Odoo là một phím tắt để bắt đầu một cá thể máy chủ bằng
cách sử dụng thư mục hiện tại. Tên thư mục được tự động sử dụng làm tên cơ sở
dữ liệu (cho tùy chọn -d) và thư mục hiện tại được tự động thêm vào đường dẫn
addons (tùy chọn --addons-path) miễn là nó chứa mô-đun addon Odoo. Trong công
thức trước, bạn sẽ không thấy thư mục hiện tại trong đường dẫn addons vì nó chưa
chứa bất kỳ mô-đun nào.

Còn nữa

Theo mặc định, thư mục hiện tại được sử dụng, nhưng tùy chọn --path cho
phép bạn thiết lập một đường dẫn cụ thể để sử dụng thay thế. Ví dụ, điều này sẽ
làm việc từ bất kỳ thư mục nào:

$ ~ / odoo-dev / odoo / odoo.py bắt đầu --path = ~ / odoo-dev / my-odoo


24
Cơ sở dữ liệu để sử dụng cũng có thể được ghi đè bằng cách sử dụng tùy
chọn -d thông thường. Trên thực tế, tất cả các đối số dòng lệnh odoo.py thông
thường khác, ngoại trừ --addons-path, sẽ hoạt động. Ví dụ, để thiết lập cổng nghe
máy chủ, sử dụng lệnh sau:

$ ../odoo/odoo.py bắt đầu --xmlrpc-port = 8080

Như chúng ta có thể thấy, lệnh khởi động Odoo có thể là một cách thuận tiện
để nhanh chóng khởi động các cá thể Odoo bằng thư mục mô-đun riêng của chúng.

3. Quản lý cơ sở dữ liệu máy chủ Odoo

Khi làm việc với Odoo, tất cả dữ liệu của cá thể của bạn được lưu trữ trong
cơ sở dữ liệu PostgreSQL. Tất cả các công cụ quản lý cơ sở dữ liệu chuẩn mà bạn
đang sử dụng đều có sẵn, nhưng Odoo cũng đề xuất một giao diện web cho một số
hoạt động phổ biến.

Sẵn sàng

Chúng tôi giả định rằng môi trường làm việc của bạn được thiết lập và bạn
có một cá thể đang chạy. Không khởi động nó bằng lệnh odoo.py start được hiển

25
thị trong công thức trước, vì nó cấu hình máy chủ với một số tùy chọn can thiệp
vào quản lý đa cơ sở dữ liệu.

Làm thế nào để làm nó...

Giao diện quản lý cơ sở dữ liệu 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 cách để thay đổi mật
khẩu chủ đượ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 cơ sở dữ liệu, cần thực hiện các bước sau:

1. Chuyển đến màn hình đăng nhập của cá thể của bạn (nếu bạn đã được xác
thực, đăng xuất).

2. Nhấp vào liên kết Quản lý cơ sở dữ liệu. Điều này sẽ điều hướng đến http:
// localhost: 8069 / web / database / manager (bạn cũng có thể trỏ trình duyệt của
mình trực tiếp đến URL đó.).

26
Đặt hoặc thay đổi mật khẩu chính

Nếu bạn đã thiết lập cá thể của mình với các giá trị mặc định, và chưa sửa
đổi nó như được giải thích trong phần sau, màn hình quản lý cơ sở dữ liệu sẽ hiển
thị cảnh báo cho bạn biết rằng mật khẩu chính chưa được đặt và khuyên bạn đặt
một liên kết trực tiếp:

27
1. Để đặt Mật khẩu chính, bạn có thể nhấp vào liên kết đó. Bạn sẽ nhận được
một hộp thoại yêu cầu bạn cung cấp mật khẩu mới:

2. Nhập mật khẩu mới không tầm thường và nhấp vào Tiếp tục.

3. Khi mật khẩu chính đã được đặt, hãy nhấp vào nút Đặt mật khẩu chính ở
cuối màn hình để thay đổi mật khẩu

4. Trong hộp thoại được hiển thị, nhập mật khẩu chủ trước đó và mật khẩu
mới, sau đó bấm vào Tiếp tục.

28
Mật khẩu chính nằm trong tệp cấu hình máy chủ dưới khóa mật
khẩu admin_. Nếu máy chủ được khởi động mà không chỉ định tệp
cấu hình, một máy chủ mới sẽ được tạo trong ~ / .openerp_serverrc.
Xem công thức tiếp theo để biết thêm thông tin về tệp cấu hình.

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

Hộp thoại này có thể được sử dụng để tạo một cá thể cơ sở dữ liệu mới sẽ
được xử lý bởi máy chủ Odoo hiện tại:

1. Trong màn hình quản lý cơ sở dữ liệu, nhấp vào nút Tạo cơ sở dữ liệu ở
cuối màn hình.

29
2. Điền vào biểu mẫu như sau:

 Mật khẩu chính: Mật khẩu chủ cho cá thể này.

 Tên cơ sở dữ liệu: Nhập tên của cơ sở dữ liệu bạn muốn tạo.

 Ngôn ngữ: Chọn ngôn ngữ bạn muốn cài đặt theo mặc định trong cơ sở dữ
liệu mới.

 Mật khẩu của người dùng quản trị: Nhập mật khẩu bạn muốn đặt cho người
dùng quản trị của phiên bản mới.

 Tải dữ liệu trình diễn: Chọn hộp này để có dữ liệu trình diễn. Điều này rất
hữu ích để chạy thử nghiệm hoặc thiết lập một cuộc biểu tình cho một khách

30
hàng, nhưng không nên được kiểm tra cho một cơ sở dữ liệu có nghĩa là
chứa dữ liệu sản xuất.

4. Nhấp vào nút Tiếp tục và đợi một chút cho đến khi cơ sở dữ liệu mới
được khởi tạo. Sau đó bạn sẽ được chuyển hướng đến cá thể, được kết
nối với tư cách Quản trị viên.

Xử lý sự cố

Nếu bạn được chuyển hướng đến màn hình đăng nhập, điều này có
thể do tùy chọn --db-filter được chuyển đến Odoo và tên cơ sở dữ
liệu mới không khớp với tên cơ sở dữ liệu mới. Lưu ý rằng lệnh bắt
đầu odoo.py thực hiện điều này một cách âm thầm, chỉ làm cho cơ
sở dữ liệu hiện tại có sẵn. Để giải quyết vấn đề này, chỉ cần khởi
động lại Odoo mà không có lệnh khởi động, như được hiển thị
trong công thức đầu tiên của chương này. Nếu bạn có một tệp cấu
hình (xem lưu trữ cấu hình cá thể trong một công thức tệp sau
trong chương này), sau đó kiểm tra xem tùy chọn db_filter chưa
được đặt hay được đặt thành một giá trị khớp với tên cơ sở dữ liệu
mới.

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

Rất thường xuyên bạn sẽ có một cơ sở dữ liệu hiện có và bạn muốn thử
nghiệm với nó để thử một thủ tục hoặc chạy thử nghiệm, nhưng không sửa đổi dữ
liệu hiện có. Câu trả lời rất đơn giản: sao chép cơ sở dữ liệu và chạy các thử
nghiệm trên bản sao. Lặp lại nhiều lần theo yêu cầu:

1. Trong màn hình quản lý cơ sở dữ liệu, nhấp vào liên kết Nhân bản bên
cạnh tên của cơ sở dữ liệu bạn muốn sao chép.

32
2. Điền vào mẫu:

 Master Password: mật khẩu chủ của máy chủ Odoo

 Tên mới: tên bạn muốn cung cấp cho bản sao

3. Nhấp vào nút Tiếp tục.

4. Sau đó bạn có thể nhấp vào tên của cơ sở dữ liệu mới được tạo trong màn
hình quản lý cơ sở dữ liệu để truy cập màn hình đăng nhập cho cơ sở dữ liệu đó.

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

Khi bạn đã hoàn thành các bài kiểm tra, bạn sẽ muốn dọn dẹp cơ sở dữ liệu
trùng lặp. Để thực hiện việc này, 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, nhấp vào liên kết Xóa bên cạnh tên
cơ sở dữ liệu bạn muốn xóa.

2. Điền vào mẫu; nhập Mật khẩu chính, là mật khẩu chính của máy chủ
Odoo.

34
3. Nhấp vào nút Xóa.

Thận trọng! Mất dữ liệu tiềm năng!

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

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

Để tạo bản sao lưu, các bước sau cần được thực hiện:

35
1. Trong màn hình quản lý cơ sở dữ liệu, hãy nhấp vào liên kết Sao lưu bên
cạnh cơ sở dữ liệu bạn muốn sao lưu.

2. Điền vào mẫu:

 Master Password: mật khẩu chủ của máy chủ Odoo.

 Định dạng sao lưu: luôn sử dụng zip cho một cơ sở dữ liệu sản xuất, vì nó là
định dạng sao lưu duy nhất thực sự duy nhất. Chỉ sử dụng định dạng
pg_dump cho cơ sở dữ liệu phát triển nơi bạn không thực sự quan tâm đến
kho lưu trữ tệp (quản trị theo mặc định).

3. Nhấp vào nút Sao lưu. Tệp sao lưu sẽ được tải xuống trình duyệt của bạn.

Khôi phục sao lưu cơ sở dữ liệu

36
Nếu bạn cần khôi phục bản sao lưu, đây là những gì bạn cần làm:

1. Trong màn hình quản lý cơ sở dữ liệu, nhấp vào nút Khôi phục cơ sở dữ
liệu ở cuối màn hình.

2. Điền vào mẫu:

 Master Password: mật khẩu chủ của máy chủ Odoo.

 Tệp: bản sao lưu Odoo đã tải xuống trước đó.

 Tên cơ sở dữ liệu: cung cấp tên của cơ sở dữ liệu trong đó sao lưu sẽ được
khôi phục. Cơ sở dữ liệu không tồn tại trên máy chủ.

 Tạo một cơ sở dữ liệu mới uuid: bỏ chọn nếu bạn đang cài đặt một cơ sở dữ
liệu đã bị xóa khỏi máy chủ; nếu không hãy chọn hộp. Có rất ít sự khác biệt
giữa chúng, và nếu nghi ngờ, việc bỏ chọn nó là một lựa chọn an toàn.

3. Nhấp vào nút Tiếp tục.

Lưu ý: Không thể khôi phục cơ sở dữ liệu trên chính nó. Nếu bạn cố gắng làm điều
này, bạn sẽ nhận được một thông báo lỗi (Lỗi khôi phục cơ sở dữ liệu: Cơ sở dữ
liệu đã tồn tại). Trước tiên, bạn cần loại bỏ cơ sở dữ liệu.
37
Làm thế nào nó hoạt động...

Các tính năng này, ngoài màn hình Thay đổi mật khẩu chính, chạy các lệnh
quản trị postgresql trên máy chủ và báo cáo lại thông qua giao diện web. Mật khẩu
chủ là một phần thông tin rất quan trọng chỉ tồn tại trong tệp cấu hình máy chủ
Odoo và không bao giờ được lưu trữ trong cơ sở dữ liệu.

Đã từng là giá trị mặc định của quản trị viên, nhưng việc sử dụng giá trị này
là trách nhiệm bảo mật vì nó được biết đến nhiều. Trong Odoo v9, điều này được
xác định là một mật khẩu chủ "không đặt" và bạn được khuyến khích thay đổi nó
khi truy cập vào giao diện quản trị cơ sở dữ liệu. Ngay cả khi nó được lưu trữ trong
tập tin cấu hình dưới mục admin_passwd, điều này không giống như mật khẩu của
người dùng quản trị; đây là hai mật khẩu độc lập: mật khẩu chính được thiết lập

38
cho một quá trình máy chủ Odoo, chính nó có thể xử lý nhiều cá thể cơ sở dữ liệu,
mỗi cá thể có một người dùng quản trị độc lập với mật khẩu riêng của mình.

Cân nhắc bảo mật: Hãy nhớ rằng chúng tôi đang xem xét một môi
trường phát triển trong chương này. Giao diện quản lý cơ sở dữ liệu
Odoo là một thứ cần bảo mật khi bạn đang làm việc trên một máy
chủ sản xuất vì nó cho phép truy cập vào rất nhiều thông tin nhạy
cảm, đặc biệt nếu máy chủ lưu trữ các cá thể Odoo cho một số máy
khách khác nhau. Điều này sẽ được đề cập trong Chương 16, Triển
khai máy chủ.

Để tạo một cơ sở dữ liệu mới, Odoo sử dụng tiện ích PostgreSQL createdb
và gọi hàm nội bộ Odoo để khởi tạo cơ sở dữ liệu mới theo cùng cách khi bạn khởi
động Odoo trên một cơ sở dữ liệu rỗng.

39
Để sao chép một cơ sở dữ liệu, Odoo sử dụng tùy chọn --template của
createdb truyền cơ sở dữ liệu gốc làm đối số. Điều này về cơ bản sao chép cấu trúc
của cơ sở dữ liệu mẫu trong cơ sở dữ liệu mới bằng cách sử dụng các thường trình
PostgreSQL nội bộ và tối ưu, nhanh hơn nhiều so với việc tạo bản sao lưu và khôi
phục nó (đặc biệt là khi sử dụng giao diện web yêu cầu tải xuống tệp sao lưu và tải
lên lại).

Các hoạt động sao lưu và phục hồi sử dụng các tiện ích pg_dump và
pg_restore tương ứng. Khi sử dụng định dạng .zip, bản sao lưu cũng sẽ bao gồm
một bản sao của kho lưu trữ tệp có chứa bản sao của tài liệu khi bạn định cấu hình
Odoo để không giữ chúng trong cơ sở dữ liệu, mặc định là 9.0. Trừ khi bạn cấu
hình nó bằng cách khác, những tập tin này sống trong ~ / .local / share / Odoo /
filestore.

Nếu bản sao lưu lớn, tải xuống có thể không thành công, vì chính
máy chủ Odoo không thể xử lý tệp lớn trong bộ nhớ hoặc máy chủ
chạy sau proxy ngược (xem Chương 16, Triển khai máy chủ) vì có
giới hạn kích thước phản hồi HTTP được đặt trong proxy. Ngược
lại, vì những lý do tương tự, bạn có thể sẽ gặp vấn đề với hoạt động
khôi phục cơ sở dữ liệu. Khi bạn bắt đầu chạy vào các vấn đề này,
đã đến lúc đầu tư vào một giải pháp dự phòng bên ngoài mạnh mẽ
hơn.

40
Có nhiều...

Các nhà phát triển có kinh nghiệm của Odoo thường không sử dụng giao
diện quản lý cơ sở dữ liệu và 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 ví dụ, có thể sử dụng một lớp lót sau:

$ createdb testdb && odoo.py -d testdb

Tiền thưởng bổ sung của dòng lệnh này là bạn có thể yêu cầu cài đặt addons
trong khi bạn đang sử dụng nó - ví dụ như bán, mua, chứng khoán (nhiều hơn trong
Chương 2, Quản lý các trường hợp máy chủ Odoo).

Để sao chép cơ sở dữ liệu, hãy dừng máy chủ và chạy lệnh sau:

$ createdb -T dbname newdbname

41
$ cd ~ / .local / share / Odoo / filestore # thích ứng nếu bạn đã thay đổi dữ
liệu_dir
$ cp-r dbname newdbname
$ cd -

Lưu ý rằng trong bối cảnh phát triển, kho lưu trữ tập tin thường bị bỏ qua.

Việc sử dụng createb -T chỉ hoạt động nếu không có phiên hoạt
động trên cơ sở dữ liệu, có nghĩa là bạn phải tắt máy chủ Odoo của
bạn trước khi sao chép cơ sở dữ liệu từ dòng lệnh.

Để loại bỏ một cá thể, hãy chạy lệnh sau:

$ dbdb dropdb
$ rm -rf ~ / .local / share / Odoo / filestore / dbname

Để tạo bản sao lưu (giả sử máy chủ PostgreSQL đang chạy cục bộ), sử dụng
lệnh sau:

$ pg_dump -Fc -f dbname.dump dbname

42
$ tar cjf dbname.tgz dbname.dump ~ / .local / share / Odoo / filestore /
dbname

Để khôi phục bản sao lưu, hãy chạy lệnh sau:

$ tar xf dbname.tgz
$ pg_restore -C -d dbname dbname.dump

Thận trọng!

Nếu cá thể Odoo của bạn sử dụng một người dùng khác để kết nối
với cơ sở dữ liệu, bạn cần phải chuyển tên người dùng -U để người
dùng chính xác là chủ sở hữu của cơ sở dữ liệu đã khôi phục.

4. Lưu trữ cấu hình cá thể trong một tệp

Kịch bản odoo.py có hàng chục tùy chọn, và thật là tẻ nhạt khi nhớ tất cả
chúng và nhớ đặt chúng đúng cách khi khởi động máy chủ. May mắn thay, có thể
lưu trữ tất cả chúng trong một tập tin cấu hình và chỉ xác định bằng tay những cái
bạn muốn thay đổi, ví dụ, để phát triển.

43
Làm thế nào để làm nó...

Để tạo một tệp cấu hình cho cá thể Odoo của bạn, hãy chạy lệnh sau:

$ odoo.py --save --config myodoo.cfg --stop-sau-init

Bạn có thể thêm các tùy chọn bổ sung và giá trị của chúng sẽ được lưu trong
tệp được tạo. Tất cả các tùy chọn chưa được đặt sẽ được lưu với bộ giá trị mặc định
của chúng. Để có danh sách các tùy chọn có thể, hãy sử dụng:

$ odoo.py --help | ít hơn

Điều này sẽ cung cấp cho bạn một số trợ giúp về những gì các tùy chọn khác
nhau thực hiện. Để chuyển đổi từ biểu mẫu dòng lệnh sang biểu mẫu cấu hình, hãy
sử dụng tên tùy chọn dài, xóa dấu gạch ngang hàng đầu và chuyển đổi dấu gạch
ngang ở giữa thành gạch dưới: --without-demo trở thành no_demo. Điều này làm

44
việc cho hầu hết các tùy chọn, nhưng có một vài ngoại lệ được liệt kê trong phần
tiếp theo.

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 có thể muốn thay đổi). Sau đó, để khởi động máy chủ với các tùy chọn đã
lưu, hãy chạy lệnh sau:

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

Làm thế nào nó hoạt động...

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

Như đã đề cập trước đó, tên của các biến cấu hình có thể được tìm thấy từ
tên của các tùy chọn dòng lệnh bằng cách loại bỏ các dấu gạch ngang hàng đầu và
45
chuyển đổi dấu gạch ngang giữa thành gạch dưới. Có một vài ngoại lệ, đáng chú ý
là:

46
Dưới đây là danh sách các tùy chọn thường được đặt thông qua tệp cấu hình:

Tùy chọn định dạng Sử dụng

without_demo Ngăn tải dữ liệu demo mô-đun.


addons_path Comma Một danh sách các tên thư mục trong đó máy
separated list of
paths chủ sẽ tìm kiếm addons (xem Chương 2, Quản
lý các trường hợp Máy chủ Odoo).
admin_passwd Text Mật khẩu chủ (xem công thức trước).
data_dir Path to a Một thư mục trong đó máy chủ sẽ lưu trữ thông
directory
tin phiên, các tệp bổ trợ được tải xuống từ
Internet và các tài liệu nếu bạn bật lưu trữ tệp.
db_host Host name Tên của máy chủ đang chạy máy chủ
PostgreSQL. Sử dụng False để sử dụng các ổ
47
cắm miền Unix cục bộ và localhost để sử dụng
các cổng TCP cục bộ.
db_user Database user
login
db_password Database user Điều này thường trống nếu db_host là False và
password
db_user có cùng tên với người dùng đang chạy
máy chủ. Đọc trang man của pg_hba.conf để
biết thêm thông tin về điều này.
database Database name Được sử dụng để đặt tên cơ sở dữ liệu mà một
số lệnh hoạt động theo mặc định). Điều này
không giới hạn các cơ sở dữ liệu mà trên đó
máy chủ sẽ hoạt động. Xem tùy chọn dbfilter
sau cho việc này.
dbfilter A regular Biểu thức phải khớp với tên của cơ sở dữ liệu
expression
được máy chủ xem xét. Nếu bạn chạy trang
web, nó phải phù hợp với một cơ sở dữ liệu duy
nhất, vì vậy nó sẽ trông giống như ^
databasename $. Thông tin thêm về điều này là
trong Chương 16, Triển khai máy chủ.
xmlrpc_interface IP address Mặc định là 0.0.0.0, có nghĩa là máy chủ lắng
of a network
interface nghe trên tất cả các giao diện
xmlrpc_port Port number Các cổng mà máy chủ Odoo sẽ lắng nghe. Bạn
longpolling_port
sẽ cần chỉ định cả hai để chạy nhiều máy chủ
Odoo trên cùng một máy chủ. longpolling_port
chỉ được sử dụng nếu công nhân không phải là
0.
logfile Path to a file Các tập tin trong đó Odoo sẽ viết các bản ghi
của nó.
log_level Log verbosity Chỉ định mức độ ghi nhật ký. Giá trị được chấp
level
nhận (trong việc tăng thứ tự độ dài): quan trọng,
lỗi, cảnh báo, thông tin, gỡ lỗi, debug_rpc,
debug_rpc_answer, debug_sql
workers Integer Số lượng quy trình công nhân. Xem Chương 16,
Triển khai máy chủ, để biết thêm thông tin.
no_database_list True / False Đặt thành True để vô hiệu hóa danh sách cơ sở
dữ liệu. Xem Chương 16, Triển khai máy chủ,
để biết thêm thông tin.

48
Có nhiều...

Việc phân tích tệp cấu hình của Odoo được thực hiện bằng cách sử dụng
mô-đun Python ConfigParser. Mô-đun này hỗ trợ xác định các giá trị cho các biến
từ các giá trị của các biến khác sử dụng ký hiệu% (section.variable) s. Bạn có thể
bỏ qua phần nếu giá trị đến từ cùng một phần hoặc nếu nó được xác định trong
phần [DEFAULT] đặc biệt.

Ví dụ, nếu bạn muốn xác định đăng nhập cơ sở dữ liệu giống như tên cơ sở
dữ liệu, bạn có thể viết phần sau trong tệp cấu hình Odoo của bạn:

[tùy chọn]
db_name = projectname
db_user =% (options.db_name) s

49
Một cách sử dụng rất phổ biến là định nghĩa một tiền tố chung cho các
đường dẫn của các addons:

[MẶC ĐỊNH]
project = / home / odoo / projects / project1
env = dev
prefix =% (dự án) s /% (env) s
[tùy chọn]
addons-path =% (tiền tố) s / odoo / addons,% (tiền tố) s / OCA / server-tools
data_dir =% (tiền tố) s / data_dir

5. Kích hoạt công cụ phát triển Odoo

Khi sử dụng Odoo làm nhà phát triển, bạn cần biết cách kích hoạt Chế độ
nhà phát triển trong giao diện web để truy cập menu cài đặt nâng cao và thông tin
nhà phát triển.

50
Làm thế nào để làm nó...

Để kích hoạt Chế độ nhà phát triển trong giao diện web:

1. Kết nối với cá thể của bạn và xác thực (không nhất thiết là quản trị viên;
chức năng này có sẵn cho tất cả người dùng, nhưng Quản trị viên có nhiều công cụ
hơn).

2. Nhấp vào mũi tên xuống bên cạnh tên người dùng của bạn ở góc trên cùng
bên phải của trang.

3. Trong trình đơn thả xuống, nhấp vào Giới thiệu.

51
4. Trong hộp thoại được hiển thị, nhấp vào Kích hoạt chế độ nhà phát triển ở
góc trên cùng bên phải.

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 dấu #, chèn? Debug =. Ví dụ: nếu bạn bắt đầu từ : http
// localhost: 8069 / web # menu_id = 102 & action = 94, sau đó bạn
cần thay đổi thành: http: // localhost: 8069 / web? debug = # menu_
id = 102 & action = 94.
52
5. Để thoát chế độ nhà phát triển, bạn có thể chỉnh sửa URL và xóa chuỗi
đó, đóng tab trình duyệt của bạn và mở một tab mới hoặc sử dụng tùy chọn Rời
khỏi chế độ gỡ lỗi ở cuối menu thả xuống gỡ lỗi bên cạnh menu người dùng trong
phía trên bên phải của màn hình.

53
Làm thế nào nó hoạt động...

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

 Mã JavaScript và CSS được gửi đến trình duyệt không được rút gọn, điều đó
có nghĩa là các công cụ phát triển web của trình duyệt của bạn dễ sử dụng để
gỡ lỗi mã JavaScript (xem thêm trong Chương 15, Phát triển ứng dụng
khách).

 Bạn nhận được chú giải công cụ khi di chuột qua một trường trong dạng
xem biểu mẫu hoặc qua một cột trong chế độ xem danh sách cung cấp thông
tin kỹ thuật về trường (tên nội bộ, loại, v.v.).

 Một menu thả xuống có biểu tượng Bug được hiển thị bên cạnh menu của
người dùng ở góc trên cùng bên phải để truy cập thông tin kỹ thuật về mô
hình đang được hiển thị, các định nghĩa chế độ xem liên quan khác nhau,
quy trình làm việc, quản lý bộ lọc tùy chỉnh, v.v.

Thận trọng!

54
Kiểm tra các trình bổ sung của bạn cả khi có và không có chế độ
nhà phát triển, vì các phiên bản chưa được biên soạn của các thư
viện JavaScript có thể ẩn các lỗi chỉ cắn bạn trong phiên bản được
rút gọn.

6. Cập nhật Odoo từ nguồn

Chúng ta đã thấy trong công thức đầu tiên về cách cài đặt Odoo từ nguồn
bằng cách sử dụng kho git. Lợi ích chính của cài đặt này là có thể cập nhật mã
nguồn của Odoo bằng git để nhận các bản sửa lỗi mới nhất.

Sẵn sàng

Dừng bất kỳ cá thể nào hiện đang chạy với nguồn Odoo mà bạn sắp cập
nhật.

55
Tạo bản sao lưu của tất cả các cơ sở dữ liệu bạn quan tâm trong trường hợp
có điều gì đó không ổn. Đây rõ ràng là điều bạn cần làm cho cơ sở dữ liệu sản xuất.
Xem công thức quản lý cơ sở dữ liệu máy chủ Odoo để được hướng dẫn.

Sau đó ghi chú phiên bản hiện tại của nguồn bạn đang chạy. Cách tốt nhất là
tạo một thẻ nhẹ bằng lệnh sau:

$ cd ~ / odoo-dev / odoo
$ git checkout 9.0
$ git tag 9.0-before-update - $ (ngày --iso)

Làm thế nào để làm nó...

Để cập nhật mã nguồn của Odoo, sử dụng lệnh sau:

$ git pull –-ff-only

Thao tác này sẽ tìm nạp phiên bản mới nhất của mã nguồn được cam kết với
nhánh hiện tại.

Để cập nhật một cá thể chạy trên mã này, hãy chạy lệnh sau:

56
$ odoo.py -c myodoo.cfg --stop-sau-init -u cơ sở
-u là ký hiệu phím tắt cho tùy chọn --update của odoo.py.

Nếu bạn không có bộ cơ sở dữ liệu trong tệp cấu hình, bạn sẽ phải thêm tùy
chọn -d database_name. Lệnh đó sẽ được lặp lại cho tất cả các cá thể đang chạy với
phiên bản mã nguồn này.

Nếu cập nhật không thành công, đừng hoảng sợ, bạn có bản sao lưu.

1. Đọc kỹ thông báo lỗi. Lưu nó vào một tập tin, vì nó sẽ hữu ích để thực
hiện một báo cáo lỗi sau này.

2. Nếu bạn không thể tìm ra vấn đề là gì, hãy khôi phục dịch vụ; khôi phục
mã nguồn Odoo về phiên bản trước, được biết là hoạt động bằng cách sử dụng thẻ
bạn đã đặt trước khi cập nhật phiên bản nguồn:

$ git reset --hard 9.0-before-update - $ (ngày --iso)

57
3. Thả các cơ sở dữ liệu bị hỏng và khôi phục chúng từ các bản sao lưu bạn
đã thực hiện (xem công thức quản lý cơ sở dữ liệu máy chủ Quản lý Odoo để được
hướng dẫn).

4. Khởi động lại các phiên bản của bạn và thông báo cho người dùng biết
rằng việc nâng cấp đã bị trì hoãn.

Lưu ý rằng trong thực tế, điều này sẽ không bao giờ xảy ra trên cơ
sở dữ liệu sản xuất, vì bạn đã thử nghiệm bản nâng cấp trước trên
bản sao của cơ sở dữ liệu, khắc phục sự cố và chỉ thực hiện nâng
cấp trên máy chủ sản xuất sau khi đảm bảo rằng nó chạy hoàn hảo
. Nhưng đôi khi, bạn vẫn còn bất ngờ, vì vậy ngay cả khi bạn thực
sự chắc chắn, hãy tạo một bản sao lưu.

58
Làm thế nào nó hoạt động...

Việc cập nhật mã nguồn được thực hiện bằng cách đảm bảo rằng chúng ta
đang ở đúng nhánh bằng cách sử dụng git checkout và sau đó tìm nạp các bản sửa
đổi mới bằng cách sử dụng git pull. Tùy chọn --ff-only sẽ gây ra lỗi nếu bạn có các
cam kết cục bộ không có trong kho lưu trữ từ xa. Nếu điều này xảy ra và bạn muốn
giữ các thay đổi của mình, bạn có thể sử dụng git pull (không có -ff-only) để hợp
nhất các thay đổi từ xa với các thay đổi của bạn; nếu không, hãy sử dụng git reset -
-hard origin / 9.0 để buộc cập nhật, loại bỏ các sửa đổi cục bộ của bạn.

Lệnh cập nhật sử dụng các tùy chọn sau:

 -c: chỉ định tệp cấu hình

 -stop-after-init: dừng phiên bản khi cập nhật kết thúc

 -u base hoặc --update base: yêu cầu cập nhật mô-đun cơ bản

Khi cập nhật một mô-đun, Odoo làm như sau:

 Nó cập nhật cấu trúc cơ sở dữ liệu cho các mô hình được định nghĩa trong
mô-đun mà cấu trúc thay đổi. Để cập nhật trên nhánh ổn định của Odoo,
không nên có những thay đổi như vậy, nhưng điều này có thể xảy ra cho
addons của bạn hoặc addons của bên thứ ba.

59
 Nó cập nhật các bản ghi cơ sở dữ liệu được lưu trữ trong các tệp dữ liệu của
mô-đun, đáng chú ý nhất là các khung nhìn. Sau đó nó đệ quy cập nhật các
mô-đun đã cài đặt đã khai báo sự phụ thuộc vào mô-đun.

Vì mô đun cơ sở là sự phụ thuộc ngầm của tất cả các mô-đun Odoo, việc cập
nhật nó sẽ kích hoạt cập nhật tất cả các mô-đun đã cài đặt trong cá thể của bạn. Để
cập nhật tất cả các mô-đun đã cài đặt, tất cả bí danh có thể được sử dụng thay cho
cơ sở.

60

You might also like