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.

  1. Đ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.

  2. Chạy tất cả các lệnh CLI với ./odoo-bin

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-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ẻ standardat_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 động at_installpost_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ền odoo.comwww.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ền odoo.com sử dụng (?i)%d khớp với cơ sở dữ liệu SoOn).

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.frommail.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ạt

  • xml: đọ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ứa t-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ợp X-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-ProtoX-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ống web.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, WARNINGERROR. 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 unicesNhậ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ật LOGGERLEVEL đượ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ức DEBUG hoặc cao hơn trong các mô hình.

  • Dấu hai chấm : là bắt buộc

  • Trì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 logger odoowerkzeug (ngoại trừ `` debug`` chỉ được đặt trên odoo).

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ành debug

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--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.

--max-cron-threads <count>

số lượng công nhân dành riêng cho các công việc cron. Mặc định là 2. Các công nhân là các luồng ở chế độ đa luồng và xử lý ở chế độ đa xử lý.

Đối với chế độ đa xử lý, đây là phần bổ sung cho các quy trình xử lý HTTP.

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ành dbfilter

  • --no-http tương ứng với boolean http_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--log-db) chỉ cần thêm nội dung vào log_handler, sử dụng trực tiếp trong tập tin cấu hình

  • --smtp được lưu dưới dạng smtp_server

  • --database được lưu dưới dạng db_name

  • --i18n-import--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ục populate 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>
Xử lý mã của tất cả các mô-đun bổ sung được cài đặt trên cơ sở dữ liệu được cung cấp cũng như của tất cả các hành động của máy chủ và các trường được tính toán được tạo thủ công trong cơ sở dữ liệu được cung cấp.
Tùy chọn --addons-path là bắt buộc để chỉ định (các) đường dẫn đến (các) thư mục mô-đun.
Nếu được kết hợp với --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
-p <path>, --path <path>
Xử lý các tập tin trong đường dẫn được cung cấp.
Nếu được kết hợp với --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
--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.
Bắt buộc nếu tùy chọn --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 testsstatic/tests

  • Các tập lệnh di chuyển được xác định trong thư mục migrationsupgrades

  • Các tệp XML được khai báo trong phần demo hoặc demo_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
]
Mẫu **/* 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ì.
Để biết thêm thông tin về cú pháp mẫu, hãy xem glob.

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