Thiết lập

Trong chương này, bạn sẽ học:

  • Cách thiết lập môi trường phát triển cục bộ của bạn.

  • Tổng quan về cấu trúc database của Odoo.

  • Cách xuất và nhập một database Odoo vào môi trường cục bộ của bạn.

  • Cách để có một instance Odoo hoạt động.

Cài đặt

There are multiple ways to install Odoo, depending on the intended use case. This documentation assumes you use the source install (running Odoo from the source code), which is best suited for Odoo designers and developers.

Database

Cấu trúc

Mọi ứng dụng Odoo đều hoạt động tương tự nhau; chúng được xây dựng theo cùng một logic. Một model chứa các field và các field quan hệ liên kết đến các model khác. Mỗi model có các view đại diện cho tất cả các field của nó, với các view backend và frontend.

Model

Nền tảng của Odoo là các model. Model sử dụng field để ghi lại dữ liệu. Record được lưu trữ trong một database: do đó chúng được liên kết với một model. Trong Odoo, bạn có thể tìm thấy các model khác nhau trong backend bằng cách bật developer mode rồi vào Settings ‣ Technical ‣ Database Structure: Models.

Trang model

Field

Trong một model, chúng ta sẽ tập trung các field (tên field mà chúng ta cần nhắm đến trong code của mình).

Field cổ điển
  • Ngày

  • Char

  • Lựa chọn

  • …

Field quan hệ

Field quan hệ gọi một field từ một model khác. Chúng cho phép bạn liên kết các model với nhau và giúp chúng tương tác dễ dàng. Nói cách khác, khi bạn sử dụng một field quan hệ, bạn liên kết một record với một record khác (nằm trên một model khác), cho phép bạn truy xuất nội dung của các field nằm trên record được liên kết này.

  • Field Many2one được điền bằng cách chọn một record từ danh sách các record trên một model khác (từ nhiều record, bạn chọn một). Ví dụ, field khách hàng trên một báo giá cho phép bạn chọn một khách hàng từ danh sách nhiều khách hàng trên model liên hệ.

  • Field One2many là tìm kiếm ngược của các quan hệ many2one đã tồn tại. Ví dụ, bạn có thể liệt kê trên một liên hệ tất cả các báo giá hiện có của họ (từ một record, bạn hiển thị nhiều).

  • Field Many2many được điền bằng cách chọn một hoặc nhiều record từ danh sách các record trên một model khác. Ví dụ, bạn có thể đặt nhiều tag lên một sản phẩm, và nhiều sản phẩm có thể sử dụng cùng những tag đó (từ nhiều record, bạn có thể chọn nhiều).

View

View xác định cách các record sẽ được hiển thị cho người dùng cuối. Chúng được xác định bằng XML, nghĩa là chúng có thể được chỉnh sửa độc lập với các model mà chúng đại diện. Chúng linh hoạt và cho phép tùy chỉnh sâu các màn hình mà chúng kiểm soát.

Backend so với Frontend
  • View backend: Kanban, List, Form, v.v.

  • View frontend: QWeb

Tĩnh so với Động
  • Trang tĩnh có nội dung ổn định, chẳng hạn như trang chủ. Bạn có thể xác định URL của chúng và thiết lập một số thuộc tính như xuất bản, lập chỉ mục, v.v.

  • Trang động được tạo ra một cách động, chẳng hạn như trang sản phẩm. URL của chúng là động và có thể truy cập bởi tất cả mọi người theo mặc định (điều này có thể thay đổi bằng cách cấu hình quyền truy cập).

Gốc so với Kế thừa so với Nhân bản
  • View gốc: View được triển khai sẵn có bởi Odoo. Nó được suy ra trực tiếp từ model của nó. Một view gốc không bao giờ nên bị thay đổi vì nó cho phép cập nhật database Odoo mà không ghi đè lên các thay đổi của khách hàng.

Các thay đổi luôn diễn ra trong một view nhân bản hoặc view kế thừa, với một số khác biệt:

  • View kế thừa luôn có một inherit_id và áp dụng các thay đổi dựa trên mã nguồn của view gốc mà nó kế thừa.

  • View nhân bản là một bản sao từ một view khác. Phần lớn thời gian, loại view này được Odoo tạo ra khi người dùng cuối áp dụng các thay đổi thông qua Website Builder. Cơ chế này ngăn mất dữ liệu khi module được cập nhật vì chỉ view gốc sẽ được cập nhật, không phải view nhân bản. Nếu tồn tại một view nhân bản, cả view gốc và view nhân bản đều hiển thị trong danh sách nhưng chỉ view nhân bản có một external_id (việc có external_id nghĩa là view đó đã được tạo bởi mã nguồn của một module).

Nhập một database đã tồn tại

Ghi chú

Bạn có thể chuyển thẳng đến chương Tạo theme nếu bạn không cần nhập một database đã tồn tại.

Dump

Odoo SaaS
  1. Đăng nhập vào một tài khoản người dùng có đủ quyền truy cập.

  2. Truy cập <database_url>/saas_worker/dump.

Odoo.sh
  1. Kết nối đến Odoo.sh.

  2. Chọn branch bạn muốn sao lưu.

  3. Chọn tab BACKUPS.

  4. Nhấp vào nút Create Backup.

  5. Khi quá trình kết thúc, một thông báo sẽ xuất hiện. Mở nó và nhấp vào nút Go to Backup.

  6. Nhấp vào biểu tượng Download. Chọn Testing trong mục Purpose và With filestore trong mục Filestore.

    Tải xuống bản sao lưu
  7. Bạn sẽ nhận được một thông báo khi bản dump đã sẵn sàng để tải xuống. Mở nó và nhấp vào Download để lấy bản dump của bạn.

    Sao lưu database

Di chuyển filestore

Sao chép tất cả các thư mục có trong thư mục filestore và dán chúng vào vị trí sau trên máy tính của bạn:

  • macOS: /Users/<User>/Library/Application Support/Odoo/filestore/<database_name>

  • Linux: /home/<User>/.local/share/Odoo/filestore/<database_name>

Ghi chú

/Library là một thư mục ẩn.

Thiết lập database

Tạo một database trống.

createdb <database_name>

Nhập file SQL vào database bạn vừa tạo.

psql <database_name> < dump.sql

Đặt lại mật khẩu người dùng admin.

psql \c
<database_name>
update res_users set login='admin', password='admin' where id=2;

Nếu cần, hãy vô hiệu hóa tùy chọn chính sách bắt buộc xác thực hai yếu tố.

psql <database-name>
update res_users set totp_secret='' where id=2;

Bắt đầu

Chạy Odoo

Sau khi tất cả các dependency đã được thiết lập, Odoo có thể được khởi chạy bằng cách chạy odoo-bin, giao diện dòng lệnh của server. Nó nằm ở thư mục gốc của thư mục Odoo Community.

Để cấu hình server, bạn có thể chỉ định các tham số dòng lệnh hoặc một file cấu hình. Phương pháp đầu tiên được trình bày dưới đây.

CLI cung cấp một số chức năng liên quan đến Odoo. Bạn có thể sử dụng nó để run the server, tạo khung sườn (scaffold) cho một theme Odoo, điền dữ liệu vào một database, hoặc đếm số dòng code.

Shell script

Một cách điển hình để chạy server là thêm tất cả các đối số dòng lệnh vào một script .sh.

Example

./odoo-bin --addons-path=../enterprise,addons --db-filter=<database> -d <database> --without-demo=all -i website --dev=xml

Thư mục

Mô tả

--addons-path

Danh sách các thư mục chứa module, phân tách bằng dấu phẩy. Các thư mục này sẽ được quét để tìm module.

-d

--database

(các) database được sử dụng khi cài đặt hoặc cập nhật module.

--db-filter

Ẩn các database không khớp với bộ lọc.

-i

--init

Danh sách các module cần cài đặt trước khi chạy server, phân tách bằng dấu phẩy. (yêu cầu -d)

-u

--update

Danh sách các module cần cập nhật trước khi chạy server, phân tách bằng dấu phẩy. (yêu cầu -d)

--without-demo

Vô hiệu hóa việc nạp dữ liệu demo cho các module được cài đặt, phân tách bằng dấu phẩy; dùng all cho tất cả module. (yêu cầu -d và -i)

--dev

Danh sách các tính năng, phân tách bằng dấu phẩy. Chỉ dùng cho mục đích phát triển. Thông tin thêm

Đăng nhập

Sau khi server đã khởi động (log INFO odoo.modules.loading: Modules loaded. được in ra), hãy mở http://localhost:8069 trong trình duyệt web của bạn và đăng nhập bằng tài khoản quản trị viên cơ sở.

Nhập admin cho email và admin cho mật khẩu.

Trang chủ chào mừng

Mẹo

Nhấn CTRL+C để dừng server. Nhấn hai lần nếu cần.

Chế độ nhà phát triển

Chế độ nhà phát triển, còn được gọi là chế độ debug, rất hữu ích cho việc phát triển vì nó cho phép truy cập vào các công cụ bổ sung. Trong các chương tiếp theo, chúng tôi giả định rằng bạn đã bật chế độ nhà phát triển.