Giao diện dòng lệnh (CLI)¶
CLI giao diện dòng lệnh cung cấp một số chức năng liên quan đến SoOn. Bạn có thể sử dụng nó để chạy máy chủ, khởi chạy SoOn dưới dạng môi trường bảng điều khiển Python, giàn dựng mô-đun SoOn, điền vào cơ sở dữ liệu, hoặc đếm số dòng mã.
Quan trọng
The command to use to call the CLI depends on how you installed Odoo. In the examples below, we
assume that you are running Odoo from source with the
odoo-bin
file. If you installed Odoo from a distribution package or with Docker, you
must adapt the command.
Điều hướng đến thư mục gốc nơi bạn đã tải xuống các tệp nguồn của Cộng đồng SoOn.
Chạy tất cả các lệnh CLI với ./odoo-bin
Khi SoOn được cài đặt, một tệp thực thi có tên odoo
đã được thêm vào PATH của người dùng. Thay thế tất cả các lần xuất hiện của odoo-bin bằng odoo trong các ví dụ bên dưới.
Vui lòng tham khảo tài liệu về Docker image chính thức của SoOn.
Trợ giúp & phiên bản¶
- -h, --help¶
hiển thị văn bản trợ giúp với tất cả các tùy chọn có sẵn
- --version¶
hiển thị phiên bản SoOn, ví dụ: "Máy chủ SoOn 17.0"
Mẹo
Bạn có thể bật tính năng tự động hoàn thành trong shell của mình bằng cách chạy
echo "complete -W '`./odoo-bin --help | \
sed -e 's/[^a-z_-]\(-\+[a-z0-9_-]\+\)/\n\1\n/' | \
grep -- '^-' | sort | uniq | tr '\n' ' '`' odoo-bin" >> ~/.bash_completion
Chạy máy chủ¶
- -d <database>, --database <database>¶
(các) cơ sở dữ liệu được sử dụng khi cài đặt hoặc cập nhật mô-đun. Việc cung cấp danh sách được phân tách bằng dấu phẩy sẽ hạn chế quyền truy cập vào cơ sở dữ liệu được cung cấp trong danh sách.
Để biết các tùy chọn cơ sở dữ liệu nâng cao, hãy xem bên dưới.
- -i <modules>, --init <modules>¶
danh sách các mô-đun được phân tách bằng dấu phẩy để cài đặt trước khi chạy máy chủ (yêu cầu
-d
).
- -u <modules>, --update <modules>¶
danh sách các mô-đun được phân tách bằng dấu phẩy để cập nhật trước khi chạy máy chủ. Sử dụng
all
cho tất cả các mô-đun. (yêu cầu-d
).
- --addons-path <directories>¶
danh sách các thư mục được phân tách bằng dấu phẩy trong đó các mô-đun được lưu trữ. Các thư mục này được quét để tìm mô-đun.
- --upgrade-path <upgrade_path>¶
chỉ định một đường dẫn nâng cấp bổ sung.
- --load <modules>¶
danh sách các mô-đun trên toàn máy chủ cần tải. Những mô-đun đó được cho là cung cấp các tính năng không nhất thiết phải gắn với cơ sở dữ liệu cụ thể. Điều này trái ngược với các mô-đun luôn được liên kết với một cơ sở dữ liệu cụ thể khi chúng được cài đặt (tức là phần lớn các tiện ích bổ sung của SoOn). Mặc định là
base,web
.
- -c <config>, --config <config>¶
đường dẫn đến một tệp cấu hình thay thế. Nếu không được xác định, SoOn sẽ kiểm tra biến môi trường
ODOO_RC
và vị trí mặc định$HOME/.odoorc
. Xem phần tệp cấu hình bên dưới.
- -D <data-dir-path>, --data-dir <data-dir-path>¶
đường dẫn thư mục nơi lưu trữ dữ liệu SoOn (ví dụ: kho tệp, phiên). Nếu không được chỉ định, SoOn sẽ chuyển sang đường dẫn được xác định trước. Trên các hệ thống Unix, nó được xác định trong biến môi trường
$XDG_DATA_HOME
hoặc~/.local/share/SoOn
hoặc/var/lib/SoOn
.
- -s, --save¶
lưu cấu hình máy chủ vào tệp cấu hình hiện tại (
$HOME/.odoorc
theo mặc định và có thể được ghi đè bằng cách sử dụng-c
).
- --without-demo¶
vô hiệu hóa việc tải dữ liệu demo cho các mô-đun được cài đặt và phân tách bằng dấu phẩy, sử dụng
all
cho tất cả các mô-đun. Yêu cầu-d
và-i
.
- --pidfile=<pidfile>¶
đường dẫn đến tệp nơi pid máy chủ sẽ được lưu trữ
- --stop-after-init¶
dừng máy chủ sau khi khởi tạo.
- --geoip-city-db <path>¶
Đường dẫn tuyệt đối đến tệp cơ sở dữ liệu Thành phố GeoIP.
- --geoip-country-db <path>¶
Đường dẫn tuyệt đối đến tệp cơ sở dữ liệu Quốc gia GeoIP.
Cấu hình thử nghiệm¶
- --test-enable¶
chạy thử nghiệm sau khi cài đặt mô-đun
- --test-file <file>¶
chạy tệp thử nghiệm python
- --test-tags [-][tag][/module][:class][.method]¶
Danh sách thông số kỹ thuật được phân tách bằng dấu phẩy để lọc những thử nghiệm cần thực hiện. Bật kiểm tra đơn vị nếu được đặt.
Ví dụ:
--test-tags :TestClass.test_func,/test_module,external
-
chỉ định xem chúng ta muốn bao gồm hay loại trừ các thử nghiệm phù hợp với thông số kỹ thuật này.Thẻ sẽ khớp các thẻ được thêm vào trên một lớp với trình trang trí
tagged()
(tất cả test các lớp đều có thẻstandard
vàat_install
cho đến khi rõ ràng đã bị xóa, hãy xem tài liệu trang trí).*
sẽ khớp với tất cả các thẻ.Nếu thẻ bị bỏ qua ở chế độ bao gồm, giá trị của nó là
tiêu chuẩn
.Nếu thẻ bị bỏ qua ở chế độ loại trừ, giá trị của nó là
*
.Mô-đun, lớp và phương thức sẽ lần lượt khớp với tên mô-đun, tên lớp kiểm tra và tên phương thức kiểm tra.
Việc lọc và thực hiện kiểm thử diễn ra hai lần: ngay sau mỗi lần cài đặt/cập nhật mô-đun và khi kết thúc quá trình tải mô-đun. Ở mỗi giai đoạn, các bài kiểm tra được lọc theo thông số kỹ thuật
--test-tags
và bổ sung theo thông số kỹ thuật độngat_install
vàpost_install
tương ứng.
- --screenshots¶
Chỉ định thư mục nơi ghi ảnh chụp màn hình khi kiểm tra HttpCase.browser_js không thành công. Nó mặc định là
/tmp/odoo_tests/db_name/screenshots
- --screencasts¶
Bật screencasts và chỉ định thư mục nơi ghi các tập tin screencasts. Tiện ích
ffmpeg
cần được cài đặt để mã hóa các khung hình thành tệp video. Nếu không các khung sẽ được giữ thay vì tệp video.
Cơ sở dữ liệu¶
- -r <user>, --db_user <user>¶
tên người dùng cơ sở dữ liệu, được sử dụng để kết nối với PostgreSQL.
- -w <password>, --db_password <password>¶
mật khẩu cơ sở dữ liệu, nếu sử dụng xác thực mật khẩu.
- --db_host <hostname>¶
máy chủ cho máy chủ cơ sở dữ liệu
localhost
trên WindowsỔ cắm UNIX khác
- --db_port <port>¶
cổng cơ sở dữ liệu lắng nghe, mặc định là 5432
- --db-filter <filter>¶
ẩn cơ sở dữ liệu không khớp với
<filter>
. Bộ lọc là một biểu thức chính quy, với các phần bổ sung:%h
được thay thế bằng toàn bộ tên máy chủ mà yêu cầu được thực hiện.%d
được thay thế bằng tên miền phụ mà yêu cầu được thực hiện, ngoại trừwww
(vì vậy tên miềnodoo.com
vàwww.odoo.com
đều khớp với cơ sở dữ liệu `` odoo``).Các hoạt động này có phân biệt chữ hoa chữ thường. Thêm tùy chọn
(?i)
để khớp với tất cả các cơ sở dữ liệu (để tên miềnodoo.com
sử dụng(?i)%d
khớp với cơ sở dữ liệuSoOn
).
Kể từ phiên bản 11, bạn cũng có thể hạn chế quyền truy cập vào một cơ sở dữ liệu nhất định bằng cách sử dụng tham số --database và chỉ định danh sách cơ sở dữ liệu được phân tách bằng dấu phẩy
Khi kết hợp hai tham số, bộ lọc db thay thế danh sách cơ sở dữ liệu được phân tách bằng dấu phẩy để hạn chế danh sách cơ sở dữ liệu, trong khi danh sách được phân tách bằng dấu phẩy được sử dụng để thực hiện các hoạt động được yêu cầu như nâng cấp mô-đun.
$ odoo-bin --db-filter ^11.*$
Hạn chế quyền truy cập vào cơ sở dữ liệu có tên bắt đầu bằng 11
$ odoo-bin --database 11firstdatabase,11seconddatabase
Hạn chế quyền truy cập vào chỉ hai cơ sở dữ liệu, cơ sở dữ liệu 11firstdatabase và 11seconddatabase
$ odoo-bin --database 11firstdatabase,11seconddatabase -u base
Hạn chế quyền truy cập vào chỉ hai cơ sở dữ liệu, 11firstdatabase và 11seconddatabase, đồng thời cập nhật mô-đun cơ sở trên một cơ sở dữ liệu: 11firstdatabase. Nếu cơ sở dữ liệu 11seconddatabase không tồn tại, cơ sở dữ liệu sẽ được tạo và các mô-đun cơ sở được cài đặt
$ odoo-bin --db-filter ^11.*$ --database 11firstdatabase,11seconddatabase -u base
Hạn chế quyền truy cập vào cơ sở dữ liệu có tên bắt đầu bằng 11 và cập nhật mô-đun cơ sở trên một cơ sở dữ liệu: 11firstdatabase. Nếu cơ sở dữ liệu 11seconddatabase không tồn tại, cơ sở dữ liệu sẽ được tạo và các mô-đun cơ sở được cài đặt
- --db-template <template>¶
khi tạo cơ sở dữ liệu mới từ màn hình quản lý cơ sở dữ liệu, hãy sử dụng cơ sở dữ liệu mẫu được chỉ định. Mặc định là
template0
.
- --pg_path </path/to/postgresql/binaries>¶
Đường dẫn đến các tệp nhị phân PostgreSQL được người quản lý cơ sở dữ liệu sử dụng để kết xuất và khôi phục cơ sở dữ liệu. Bạn chỉ phải chỉ định tùy chọn này nếu các tệp nhị phân này nằm trong một thư mục không chuẩn.
- --no-database-list¶
Ngăn chặn khả năng liệt kê cơ sở dữ liệu có sẵn trên hệ thống
- --db_sslmode¶
Kiểm soát bảo mật SSL của kết nối giữa SoOn và PostgreSQL. Giá trị phải là một trong các giá trị 'vô hiệu hóa', 'cho phép', 'thích', 'yêu cầu', 'xác minh-ca' hoặc 'xác minh đầy đủ' Giá trị mặc định là 'thích'
- --unaccent¶
Hãy thử kích hoạt tiện ích mở rộng không có dấu khi tạo cơ sở dữ liệu mới
Email¶
- --email-from <address>¶
Địa chỉ email được sử dụng làm <TỪ> khi SoOn cần gửi thư
- --from-filter <address or domain>¶
Xác định địa chỉ email mà cấu hình SMTP sẽ áp dụng. Trường này có thể là tên miền hoặc toàn bộ địa chỉ email hoặc có thể để trống. Nếu địa chỉ email của người gửi không khớp với bộ lọc đã đặt này thì email sẽ được gói gọn bằng cách sử dụng kết hợp hai tham số hệ thống:
mail.default.from
vàmail.catchall.domain
. Ví dụ: "Quản trị viên" <admin@example.com> => "Quản trị viên" <notifications@mycompany.com>.
- --smtp <server>¶
Địa chỉ của máy chủ SMTP cần kết nối để gửi thư
- --smtp-port <port>¶
- --smtp-ssl¶
Nếu được đặt, odoo sẽ sử dụng kết nối SSL/STARTSSL SMTP
- --smtp-user <name>¶
Tên người dùng để kết nối với máy chủ SMTP
- --smtp-password <password>¶
Mật khẩu để kết nối với máy chủ SMTP
- --smtp-ssl-certificate-filename <path/to/cert.pem>¶
Chứng chỉ SSL sẽ được sử dụng để xác thực. Nếu được đặt thì bắt buộc phải có
smtp-ssl-private-key
.
- --smtp-ssl-private-key-filename <path/to/key.pem>¶
Khóa riêng SSL được sử dụng để xác thực. Nếu được đặt thì bắt buộc phải có
smtp-ssl-certificate
.
Quốc tế hóa¶
Sử dụng các tùy chọn này để dịch SoOn sang ngôn ngữ khác. Xem phần i18n của hướng dẫn sử dụng. Tùy chọn '-d' là bắt buộc. Tùy chọn '-l' là bắt buộc trong trường hợp nhập khẩu
- --load-language <languages>¶
chỉ định ngôn ngữ (được phân tách bằng dấu phẩy) cho bản dịch bạn muốn tải
- -l, --language <language>¶
chỉ định ngôn ngữ của tập tin dịch. Sử dụng nó với --i18n-export hoặc --i18n-import
- --i18n-export <filename>¶
xuất tất cả các câu cần dịch sang tệp CSV, tệp PO hoặc kho lưu trữ TGZ và thoát.
- --i18n-import <filename>¶
nhập tệp CSV hoặc PO có bản dịch và thoát. Tùy chọn '-l' là bắt buộc.
- --i18n-overwrite¶
ghi đè các thuật ngữ dịch hiện có khi cập nhật mô-đun hoặc nhập tệp CSV hoặc PO.
- --modules¶
chỉ định các mô-đun để xuất. Sử dụng kết hợp với --i18n-export
Tùy chọn nâng cao¶
Tính năng dành cho nhà phát triển¶
- --dev <feature,feature,...,feature>¶
danh sách các tính năng được phân tách bằng dấu phẩy. Chỉ dành cho mục đích phát triển. Không sử dụng nó trong sản xuất. Các tính năng có thể có là:
all
: tất cả các tính năng bên dưới đều được kích hoạtxml
: đọc trực tiếp mẫu QWeb từ tệp xml thay vì cơ sở dữ liệu. Khi một mẫu đã được sửa đổi trong cơ sở dữ liệu, nó sẽ không được đọc từ tệp xml cho đến lần cập nhật/init tiếp theo. Đặc biệt, các mẫu không được dịch khi sử dụng tùy chọn này.tải lại
: khởi động lại máy chủ khi tệp python được cập nhật (có thể không được phát hiện tùy thuộc vào trình soạn thảo văn bản được sử dụng)qweb
: phá vỡ việc đánh giá mẫu QWeb khi một nút chứat-debug='debugger'
(i)p(u)db
: khởi động trình gỡ lỗi python đã chọn trong mã khi xảy ra lỗi không mong muốn trước khi ghi nhật ký và trả về lỗi.werkzeug
: hiển thị truy nguyên đầy đủ trên trang giao diện người dùng trong trường hợp ngoại lệ
HTTP¶
- --no-http¶
không khởi động HTTP hoặc công nhân bỏ phiếu dài (vẫn có thể khởi động cron công nhân)
Cảnh báo
không có hiệu lực nếu
--test-enable
được đặt, vì các thử nghiệm yêu cầu máy chủ HTTP có thể truy cập
- --http-interface <interface>¶
Địa chỉ TCP/IP mà máy chủ HTTP lắng nghe, mặc định là
0.0.0.0
(tất cả các địa chỉ)
- -p <port>¶
- --http-port <port>¶
Cổng mà máy chủ HTTP lắng nghe, mặc định là 8069.
- --gevent-port <port>¶
Cổng TCP cho các kết nối websocket ở chế độ đa xử lý hoặc gevent, mặc định là 8072. Không được sử dụng ở chế độ mặc định (luồng).
- --proxy-mode¶
cho phép sử dụng các tiêu đề
X-Forwarded-*
thông qua hỗ trợ proxy của Werkzeug.Nó bỏ qua tất cả các tiêu đề
X-Forwarded-*
trong trường hợpX-Forwarded-Host
bị thiếu trong yêu cầu.Nó luôn lấy IP thực từ mục cuối cùng của chuỗi
X-Forwarded-For
. Định cấu hình máy chủ web của bạn cho phù hợp bằng cách sử dụng các lệnh như set_real_ip_from của nginx trong trường hợp có các proxy đáng tin cậy khác dọc theo chuỗi phải được bỏ qua.X-Forwarded-Proto
vàX-Forwarded-Host
được sử dụng để cập nhật URL gốc của yêu cầu, sau đó URL này được sử dụng để cập nhật tham số hệ thốngweb.base.url
khi thành công xác thực quản trị viên. Tham số hệ thống này được sử dụng để tạo tất cả các liên kết cho cơ sở dữ liệu hiện tại; xem tên miền/web-base-url.Cảnh báo
chế độ proxy không được được bật bên ngoài kịch bản proxy ngược
- --x-sendfile¶
ủy quyền cung cấp các tệp đính kèm cho máy chủ web tĩnh và đặt cả tiêu đề http
X-Sendfile
(apache) vàX-Accel-*
(nginx) trên phản hồi luồng. Xem Cung cấp các tệp tĩnh và tệp đính kèm để biết cấu hình máy chủ web.
Ghi nhật ký¶
Theo mặc định, SoOn hiển thị tất cả nhật ký cấp độ INFO
, WARNING
và ERROR
. Tất cả nhật ký độc lập với cấp độ đều được xuất ra trên stderr
. Có nhiều tùy chọn khác nhau để chuyển hướng ghi nhật ký đến các đích khác và tùy chỉnh mức độ chi tiết.
- --logfile <file>¶
gửi kết quả ghi nhật ký tới tệp được chỉ định thay vì
stderr
. Trên Unix, tệp có thể được quản lý bằng các chương trình xoay vòng nhật ký bên ngoài và sẽ tự động được mở lại khi được thay thế
- --syslog¶
log vào trình ghi sự kiện của hệ thống: syslog trên unices và Nhật ký sự kiện trên Windows.
Không thể cấu hình được
- --log-db <dbname>¶
log vào mô hình
ir.logging
(bảng``ir_logging``) của cơ sở dữ liệu đã chỉ định. Cơ sở dữ liệu có thể là tên của cơ sở dữ liệu trong PostgreSQL "hiện tại" hoặc một URI PostgreSQL, ví dụ: tổng hợp nhật ký.
- --log-handler <handler-spec>¶
LOGGER:LEVEL
, bậtLOGGER
ởLEVEL
được cung cấp, ví dụ:odoo.models:DEBUG
sẽ kích hoạt tất cả các thông báo ghi nhật ký ở mứcDEBUG
hoặc cao hơn trong các mô hình.Dấu hai chấm
:
là bắt buộcTrình ghi nhật ký có thể được bỏ qua để định cấu hình trình xử lý gốc (mặc định)
Nếu mức độ bị bỏ qua, trình ghi nhật ký được đặt thành
INFO
Tùy chọn này có thể được lặp lại để định cấu hình nhiều trình ghi nhật ký, ví dụ:
$ odoo-bin --log-handler :DEBUG --log-handler werkzeug:CRITICAL --log-handler odoo.fields:WARNING
- --log-web¶
cho phép ghi nhật ký DEBUG của các yêu cầu và phản hồi HTTP, tương đương với
--log-handler=odoo.http:DEBUG
- --log-sql¶
cho phép ghi nhật ký DEBUG của truy vấn SQL, tương đương với
--log-handler=odoo.sql_db:DEBUG
- --log-level <level>¶
Phím tắt để dễ dàng thiết lập các mức được xác định trước trên các trình ghi nhật ký cụ thể. Các mức "thực" (
quan trọng
,error
,warn
,debug
) được đặt trên loggerodoo
vàwerkzeug
(ngoại trừ `` debug`` chỉ được đặt trênodoo
).SoOn cũng cung cấp các mức giả gỡ lỗi áp dụng cho các bộ ghi nhật ký khác nhau:
gỡ lỗi_sql
đặt trình ghi nhật ký SQL thành
gỡ lỗi
tương đương với
--log-sql
gỡ lỗi_rpc
đặt trình ghi nhật ký yêu cầu
odoo
và HTTP thành ''debug``tương đương với
--log-level debug --log-request
gỡ lỗi_rpc_answer
đặt trình ghi nhật ký phản hồi và yêu cầu
odoo
và HTTP thànhdebug
tương đương với
--log-level debug --log-request --log-response
Ghi chú
Trong trường hợp xung đột giữa
--log-level
và--log-handler
, cái sau được sử dụng
Đa xử lý¶
- --workers <count>¶
nếu
đếm
không phải là 0 (mặc định), hãy bật đa xử lý và thiết lập số lượng nhân viên HTTP được chỉ định (các quy trình phụ xử lý các yêu cầu HTTP và RPC).Ghi chú
chế độ đa xử lý chỉ khả dụng trên các hệ thống dựa trên Unix
Một số phương án cho phép hạn chế và tái chế công nhân:
- --limit-request <limit>¶
Số lượng yêu cầu mà một nhân viên sẽ xử lý trước khi được tái chế và khởi động lại.
Mặc định là 8196.
- --limit-memory-soft <limit>¶
Bộ nhớ ảo tối đa được phép cho mỗi nhân viên tính bằng byte. Nếu vượt quá giới hạn, công nhân sẽ bị giết và tái chế khi kết thúc yêu cầu hiện tại.
Mặc định là 2048MiB (2048*1024*1024B).
- --limit-memory-hard <limit>¶
Giới hạn cứng trên bộ nhớ ảo tính bằng byte, bất kỳ nhân viên nào vượt quá giới hạn sẽ bị giết ngay lập tức mà không cần đợi quá trình xử lý yêu cầu hiện tại kết thúc.
Mặc định là 2560MiB (2560*1024*1024B).
- --limit-time-cpu <limit>¶
Ngăn nhân viên sử dụng nhiều hơn <limit> giây CPU cho mỗi yêu cầu. Nếu vượt quá giới hạn, công nhân sẽ bị giết.
Mặc định là 60.
- --limit-time-real <limit>¶
Ngăn không cho nhân viên mất nhiều hơn <limit> giây để xử lý yêu cầu. Nếu vượt quá giới hạn, công nhân sẽ bị giết.
Khác với
--limit-time-cpu
ở chỗ đây là giới hạn "tường thời gian" bao gồm ví dụ: Truy vấn SQL.Mặc định là 120.
Tập tin cấu hình¶
Hầu hết các tùy chọn dòng lệnh cũng có thể được chỉ định thông qua tệp cấu hình. Hầu hết, họ sử dụng các tên tương tự với tiền tố -
bị loại bỏ và -
khác được thay thế bằng _
ví dụ: --db-template
trở thành db_template
.
Một số chuyển đổi không khớp với mẫu:
--db-filter
trở thànhdbfilter
--no-http
tương ứng với booleanhttp_enable
cài đặt trước ghi nhật ký (tất cả các tùy chọn bắt đầu bằng
--log-
ngoại trừ--log-handler
và--log-db
) chỉ cần thêm nội dung vàolog_handler
, sử dụng trực tiếp trong tập tin cấu hình--smtp
được lưu dưới dạngsmtp_server
--database
được lưu dưới dạngdb_name
--i18n-import
và--i18n-export
hoàn toàn không có sẵn trong các tệp cấu hình
Tệp cấu hình mặc định là $HOME/.odoorc
có thể được ghi đè bằng cách sử dụng --config
. Chỉ định --save
sẽ lưu trạng thái cấu hình hiện tại trở lại tệp đó. Các mục cấu hình liên quan đến dòng lệnh phải được chỉ định trong phần [options]
.
Đây là một tập tin mẫu:
[options]
db_user=odoo
dbfilter=odoo
Vỏ bọc¶
Dòng lệnh SoOn cũng cho phép khởi chạy SoOn dưới dạng môi trường bảng điều khiển Python, cho phép tương tác trực tiếp với orm và các chức năng của nó.
$ odoo-bin shell
Example
Thêm dấu chấm than vào tên của tất cả người liên hệ:
In [1]: records = env["res.partner"].search([])
In [2]: records
Out[2]: res.partner(14, 26, 33, 21, 10)
In [3]: for partner in records:
...: partner.name = "%s !" % partner.name
...:
In [4]: env.cr.commit()
Quan trọng
Theo mặc định, shell đang chạy ở chế độ giao dịch. Điều này có nghĩa là mọi thay đổi được thực hiện đối với cơ sở dữ liệu sẽ được khôi phục khi thoát khỏi shell. Để thực hiện các thay đổi, hãy sử dụng env.cr.commit()
.
- --shell-interface (ipython|ptpython|bpython|python)¶
Chỉ định REPL ưa thích để sử dụng trong chế độ shell. Shell này được khởi động với biến
env
đã được khởi tạo để có thể truy cập ORM và các mô-đun SoOn khác.
Xem thêm
tham chiếu/orm/môi trường
Đoạn đầu đài¶
Giàn giáo là việc tự động tạo cấu trúc khung để đơn giản hóa quá trình khởi động (của các mô-đun mới, trong trường hợp của SoOn). Mặc dù không cần thiết nhưng nó tránh được sự nhàm chán khi thiết lập các cấu trúc cơ bản và tìm kiếm tất cả các yêu cầu ban đầu là gì.
Giàn giáo có sẵn thông qua lệnh phụ odoo-bin giàn giáo.
$ odoo-bin scaffold my_module /addons/
- name (required)¶
tên của mô-đun cần tạo, có thể được trộn theo nhiều cách khác nhau để tạo ra các tên lập trình (ví dụ: tên thư mục mô-đun, tên mô hình, …)
- destination (default=current directory)¶
thư mục để tạo mô-đun mới, mặc định là thư mục hiện tại
- -t <template>¶
một thư mục mẫu, các tập tin được chuyển qua jinja2 sau đó được sao chép vào thư mục
đích
Điều này sẽ tạo mô-đun my_module trong thư mục /addons/.
Dân số cơ sở dữ liệu¶
SoOn CLI hỗ trợ các tính năng tổng hợp cơ sở dữ liệu. Nếu tính năng này được triển khai trên một mô hình nhất định, thì tính năng này cho phép tạo dữ liệu tự động cho các bản ghi của mô hình để kiểm tra các mô-đun của bạn trong cơ sở dữ liệu chứa số lượng bản ghi không hề nhỏ.
$ odoo-bin populate
- --models¶
danh sách các mô hình mà cơ sở dữ liệu cần được điền
- --size (small|medium|large)¶
quy mô dân số, số lượng bản ghi thực tế phụ thuộc vào thuộc tính
_populate_sizes
của mô hình. Nội dung bản ghi được tạo được chỉ định theo phương thức_populate_factories()
của một mô hình nhất định (xem thư mụcpopulate
của các mô-đun để biết thêm chi tiết).
Xem thêm
tham chiếu/hiệu suất/điền
cloc¶
SoOn Cloc là công cụ đếm số dòng liên quan được viết bằng Python, Javascript, CSS, SCSS hoặc XML. Điều này có thể được sử dụng như một thước đo sơ bộ để định giá bảo trì các mô-đun bổ sung.
Tùy chọn dòng lệnh¶
- -d <database>, --database <database>¶
--addons-path
là bắt buộc để chỉ định (các) đường dẫn đến (các) thư mục mô-đun.--path
, số đếm sẽ là tổng kết quả của cả hai tùy chọn (có thể trùng lặp). Cần có ít nhất một trong hai tùy chọn này để chỉ định mã nào cần xử lý.$ odoo-bin cloc --addons-path=addons -d my_database
Xem thêm
- -p <path>, --path <path>¶
--database
, số đếm sẽ là tổng kết quả của cả hai tùy chọn (có thể trùng lặp). Cần có ít nhất một trong hai tùy chọn này để chỉ định mã nào cần xử lý.$ odoo-bin cloc -p addons/account
Nhiều đường dẫn có thể được cung cấp bằng cách lặp lại tùy chọn.
$ odoo-bin cloc -p addons/account -p addons/sale
Xem thêm
- --addons-path <directories>¶
--database
được sử dụng.- -c <directories>¶
Chỉ định tệp cấu hình để sử dụng thay cho tùy chọn --addons-path
.
$ odoo-bin cloc -c config.conf -d my_database
- -v, --verbose¶
Hiển thị chi tiết các dòng được tính cho mỗi file.
Tệp đã xử lý¶
Với tùy chọn --database
¶
SoOn Cloc đếm số dòng trong mỗi tệp của các mô-đun được cài đặt bổ sung trong cơ sở dữ liệu nhất định. Ngoài ra, nó còn đếm các dòng hành động máy chủ Python và các trường được tính toán tùy chỉnh đã được tạo trực tiếp trong cơ sở dữ liệu hoặc được nhập. Cuối cùng, nó đếm các dòng mã của tệp Javascript, CSS và SCSS cũng như số lượt xem QWeb từ các mô-đun đã nhập.
Một số tệp được loại trừ khỏi số lượng theo mặc định:
Tệp kê khai (
__manifest__.py
hoặc__openerp__.py
)Nội dung của thư mục
static/lib
Các bài kiểm tra được xác định trong thư mục
tests
vàstatic/tests
Các tập lệnh di chuyển được xác định trong thư mục
migrations
vàupgrades
Các tệp XML được khai báo trong phần
demo
hoặcdemo_xml
của tệp kê khai
Đối với các trường hợp đặc biệt, có thể xác định danh sách các tệp mà SoOn Cloc bỏ qua cho mỗi mô-đun. Điều này được chỉ định bởi mục cloc_exclude
của bảng kê khai:
"cloc_exclude": [
"lib/common.py", # exclude a single file
"data/*.xml", # exclude all XML files in a specific folder
"example/**/*", # exclude all files in a folder hierarchy recursively
"**/*.scss", # exclude all scss file from the module
]
**/*
có thể được sử dụng để bỏ qua toàn bộ mô-đun. Điều này có thể hữu ích để loại trừ một mô-đun khỏi chi phí dịch vụ bảo trì.Với tùy chọn --path
¶
Phương thức này hoạt động tương tự như với tùy chọn --database nếu có tệp kê khai trong thư mục đã cho. Nếu không, nó sẽ đếm tất cả các tập tin.
Xác định các mô-đun bổ sung¶
Để phân biệt giữa các mô-đun tiêu chuẩn và mô-đun bổ sung, SoOn Cloc sử dụng phương pháp phỏng đoán sau: các mô-đun được định vị (đường dẫn hệ thống tệp thực, sau khi đi theo các liên kết tượng trưng) trong cùng thư mục mẹ với base
, web
hoặc ` mô-đun tiêu chuẩn web_enterprise`
được coi là tiêu chuẩn. Các mô-đun khác được coi là mô-đun bổ sung.
Xử lý lỗi¶
Một số tập tin không thể được đếm bằng SoOn Cloc. Những tập tin đó được báo cáo ở cuối đầu ra.
Đã vượt quá kích thước tệp tối đa¶
SoOn Cloc từ chối mọi tệp lớn hơn 25 MB. Thông thường, tệp nguồn có kích thước nhỏ hơn 1 MB. Nếu một tập tin bị từ chối, nó có thể là:
Một tệp XML được tạo có chứa nhiều dữ liệu. Nó nên được loại trừ trong bảng kê khai.
Một thư viện JavaScript nên được đặt trong thư mục
static/lib
.
Lỗi cú pháp¶
SoOn Cloc không thể đếm các dòng mã của tệp Python có vấn đề về cú pháp. Nếu một mô-đun bổ sung chứa các tệp như vậy, chúng phải được sửa để cho phép mô-đun tải. Nếu mô-đun hoạt động bất chấp sự hiện diện của các tệp đó, chúng có thể không được tải và do đó phải bị xóa khỏi mô-đun hoặc ít nhất là bị loại trừ trong tệp kê khai thông qua cloc_exclude
.
Trình tạo TSConfig¶
Khi làm việc trên javascript, có nhiều cách giúp trình soạn thảo của bạn cung cấp cho bạn tính năng tự động hoàn thành mạnh mẽ. Một trong những cách đó là sử dụng tệp tsconfig.json. Ban đầu được dùng cho bản đánh máy, người chỉnh sửa cũng có thể sử dụng thông tin của nó bằng javascript đơn giản. Với tệp cấu hình này, giờ đây bạn sẽ có tính năng tự động hoàn thành hoàn toàn trên các mô-đun.
Lệnh tạo tệp này cần bao nhiêu đối số chưa được đặt tên mà bạn cần. Đó là những đường dẫn tương đối đến thư mục addon của bạn. Trong ví dụ bên dưới, chúng tôi di chuyển lên một thư mục để lưu tệp tsconfig trong thư mục chứa cộng đồng và doanh nghiệp.
$ community/odoo-bin tsconfig --addons-path community/addons,community/odoo/addons,enterprise > tsconfig.json