我在Odoo 9 PostgreSQL数据库中的res_partner
表中找不到image
列? Odoo 9在哪里存储这个图像字段?Odoo 9将“res.partner”记录的`image`字段实际存储在数据库中?
回答
从Odoo 9开始,许多binary
字段已被修改为存储在ir.attachment
型号(ir_attachment
表)中。这样做是为了从文件系统存储(和重复数据删除属性)中受益,并避免数据库膨胀。
使用attachment=True
参数在二进制字段上启用此功能,因为它是为res.partner
's image
fields完成的。
当激活时,在ir.attachment
表中的二进制字段的get()
和set()
方法将store and retrieve the value。如果你看一下code,你会看到,附件使用以下值来建立链接到原来的记录:
name
:二进制字段的名称,例如image
res_field
:二进制字段的名称,例如image
res_model
:包含该字段的模型,例如,res.partner
res_id
:ID的二进制字段所属的记录来type
:'binary'
datas
:与二进制字段,这实际上是存储在磁盘上
因此,如果内容虚拟场您想要检索ir.attachment
记录,其中ID为res.partner
的image
的值为012,您可以使用以下SQL:
SELECT id, store_fname FROM ir_attachment
WHERE res_model = 'res.partner' AND res_field = 'image' AND res_id = 32;
因为ir_attachment
项默认使用文件系统存储的store_fname
场的实际值会给你的路径,你Odoo文件存储内的图像文件,在形式'ab/abcdef'
其中abc...
值为SHA-1散列的文件。这是Odoo如何实现附件的重复数据删除:具有相同文件的多个附件将映射到磁盘上的同一个唯一文件。
如果你想修改image
场编程的价值,强烈推荐使用ORM API(例如write()
方法),以避免产生不一致或需要手动重新实现文件存储系统。
参考
- 这里是引入了对存储二进制领域作为附件
- 而且该
image
字段转换res.partner的使用它9.0 commit的特征original 9.0 commit。
非常感谢:)您还可以告诉我哪个表用于链接附件和res_partner表中的数据吗?绑定res_partner图片的附件的关系在哪里? –
不客气!将'ir.attachment'中的数据与'res.partner'行关联的表是ir_attachment表本身。它的列res_model,res_field和res_id创建了一个与'res_partner'或任何其他具有'attachment = True'的二进制字段的表的'many2one'关系。我已经添加了一个SQL查询的示例,您可以使用它来检索给定合作伙伴的附件,以及一些解释来查找文件存储上的实际映像文件。 – odony
- 1. odoo 9 xpath多个存在的字段
- 2. 将表存储在数据库中的记录中
- 3. 将实验记录保存在Mercurial的共享存储库中
- 4. Odoo 8 - 具有“store = True”的计算字段不能存储在数据库中
- 5. odoo中many2one字段的记录规则
- 6. 数据库的记录存储与revisioning
- 7. 将数据库记录存储到数组中
- 8. 在一个字段中存储多个数据(将数据存储在数据库的数组中)
- 9. Many2one字段中的两个值odoo 9
- 10. drupal 7在数据库中存储实际内容?
- 11. 按日期存储数据库记录
- 12. Odoo如何添加已存在的记录到one2many字段?
- 13. Odoo - Many2one在数据库中的实现
- 14. 将数组数组存储在数据库字段
- 15. odoo 9将二进制字段db迁移到文件存储区
- 16. PHP:将自定义字段值存储在记录中
- 17. 将数据存储到json字段中
- 18. 什么数据实际存储在CouchDB的B-tree数据库中?
- 19. 在rails数据库中存储复杂的记录与form_tag
- 20. 如何将当前记录的用户标识或活动用户标识存储在odoo 9中?
- 21. 从数据存储中计数记录
- 22. Android数据库中存在()记录吗?
- 23. 如何存储和压缩实时数据记录的数据?
- 24. 在SQL Server 2005数据库中记录存储过程错误
- 25. 使用DataReader将数据库多个记录存储到变量
- 26. 如何从数据库中odoo获取数据9
- 27. 将CDR数据库记录存储在以帐户代码命名的表中?
- 28. 我应该存储关于数据库中的数字记录的信息吗?
- 29. 保存数据库字段更改 - 最佳实践?版本控制,可记录?
- 30. 当变量存储实际值时,PHP将NULL插入到MySQL数据库中
可能值得指定您正在使用的Odoo版本。存储位置在版本9.0中更改 – odony
是的,我正在使用Odoo 9.0 –