Thảo luận về kiến trúc và cài đặt module trong Odoo

Thảo luận trong 'Các Mô Đun OpenERP' bắt đầu bởi Phúc, 23/4/15.

  1. Phúc Member

    Chào các anh, chị, em,

    Hôm nay em được hỏi 1 câu hơi lạ, em trả lời thì các bác ý bảo sai. E xin đưa lên đây để ace ta cùng thảo luận để e học hỏi, mở mang kiến thức ạ.
    Câu 1: Kiến trúc của 1 Module trong Odoo?
    Câu 2: Khi cài đặt module trong Odoo thì sẽ được lưu trữ như thế nào trên database cũng như lưu trữ vật lý?

    Em thấy hoang mang style về kiến thức của mình quá :(
    Thanks ace nhiều ạ,
  2. bruce.nguyen Active Member

    Thế câu trả lời của em là gì ?
  3. Phúc Member

    Em trả lời như sau ạ.
    Câu 1: Kiến trúc của một module là theo mô hình MVC, còn nếu cấu trúc thì có file, foder xyz,....
    Câu 2: Module trong Odoo được lưu trữ vật lý tại foder addons, còn trong database thì lưu thông tin module trong bảng ir_ir_module, nếu có view, model, .... sẽ lưu các bảng tương ứng như ir_ir_view, ir_ir_model, ....

    Bác chỉ bảo e thêm ạ để e hiểu kỹ hơn.
  4. bruce.nguyen Active Member

    1. Kiến trúc 1 module là 1 MVC? điều này tất nhiên rồi. ( khi thực hiện load 1 module, hệ thống tự biên dịch từ các file py ra pyc và thực thi trên các file đó, file py đóng vai trò file nguồn )
    2. Tương ứng từng object trên model thì tương ứng bấy nhiêu bảng trong cơ sở dữ liệu và chúng quan hệ ràng buộc với nhau theo từng kiểu quan hệ (m2m, m2o, o2m, o2o....etc).
    openerpvietnam thích bài này.
  5. Phúc Member

    Như vậy e vẫn có thể dùng kiến thức của mình như trên chứ ạ?
  6. Leo Tran Active Member

    Câu 1: Đã là Kiến trúc thì có nghĩa là hỏi về Kiến trúc phần mềm => câu trả lời MVC là chuẩn không cần chỉnh.
    Câu 2: Người ta hỏi khi cài đặt module chứ ko hỏi module đc quản lý ntn? nên addons-path không liên quan đến câu hỏi này. Nếu là mình thì câu trả lời sẽ là: khi cài đặt module, mỗi đối tượng đc kế thừ từ Models sẽ tương ứng với một record trong bảng ir_model. Không cần phải trả lời view viếc làm gì, trừ khi là câu hỏi phỏng vấn thì mình cần phát triển tiếp ra để thể hiện kiến thức của mình. Còn về lưu trữ vật lý thì như chúng ta đã biết, khi cài đặt module thì mọi thứ được lưu vào database (trừ code python, css, js,...) vì vậy việc lưu vật lý là do postgresql quyết định, phụ thuộc vào thiết lâp cài đặt postgresql.
    openerpvietnam thích bài này.
  7. Phúc Member

    Bác Leo Trần nhầm lẫn việc lưu trữ vậy lý rồi thì phải ;)
  8. Leo Tran Active Member

    Vậy là mình hiểu lầm câu hỏi à :D. Mình cho rằng, khi cài module, Odoo chả lưu vào đâu cả ngoài database, thế nên nếu có lưu vật lý thì là cái database đấy lưu vật lý như thế nào :">
  9. Phúc Member

    Câu hỏi e đưa ra hỏi rõ 2 cái đó mà bác:
    "Câu 2: Khi cài đặt module trong Odoo thì sẽ được lưu trữ như thế nào trên database cũng như lưu trữ vật lý?"
    Ý là khi bác có 1 module dưới dạng tar.gz hay rar hay zip chẳng hạn, khi bác cài trên linux chẳng hạn thì sẽ được lưu trữ như thế nào ý bác. Ví dụ trên linux là dễ hiểu nhất ạ.
  10. Leo Tran Active Member

    OK, vậy thì câu trả lời của bạn là module được lưu trong "folder addons" là sai rồi. Vì không nhất thiết phải lưu vào addons, mình có thể tạo một folder có tên leotran hoặc customs và lưu trong đó. Sau đó khai báo đường dẫn addons-path trỏ đến các folder đó là xong.
    Phúc thích bài này.
  11. Phúc Member

    OK a, nếu họ mà nghĩ được câu trả lời như a thế này thì e chào thua. Vì e thấy họ hỏi là mặc định và cài thêm module thôi ;)
  12. Leo Tran Active Member

    Nếu đây chỉ đơn thuần là câu hỏi miệng của anh em mình ngoài quán bia hoặc trên diễn đàn thì bạn trả lời như vậy ko sai (vì anh em có thể ngầm hiểu được). Nhưng nếu đây là một câu hỏi kiểu đố nhau (phỏng vấn, thi cử,...) thì bạn trả lời như vậy là sai :">
  13. Phúc Member

    Vde là e sợ người hỏi không nghĩ ra câu trả lời kia đâu ;)
  14. Leo Tran Active Member

    Nếu vậy thì mình không nghĩ ra được câu trả lời ntn để cho rằng bạn trả lời sai cả?
  15. Phúc Member

    Em không hiểu ý anh
  16. Leo Tran Active Member

    Ý mình là: ngoài lý do mình đưa ra thì câu trả lời của bạn là đúng :D

Chia sẻ trang này