odoo开发笔记 -- odoo和postgresql数据库导入相关
odoo数据库 导入、导出
首先odoo框架下postgresql数据库中,表结构的存储方式:
存在id(小写),并没有所谓的外部ID
例如数据库中的国家表:模块名_tb_country (注意:odoo框架下,数据库中生成的表命名规则是,模块名_实际表名)
id code name
1 001 中国
2 002 美国
3 003 德国
。。。
odoo系统自带功能,前台界面导出的时候:导入兼容导出模式
这种情况下导出的csv表数据结构 : 注意这里导出的id为小写
id code name
__export__.模块名_tb_country_1 001 中国
__export__.模块名_tb_country_2 002 美国
__export__.模块名_tb_country_3 003 德国
我们再对比看下 另一种导出模式:导出全部数据
这种情况下导出的csv数据结构 :如果选择导出id,那么导出的CSV表中,外部id字段的表头,会和ID做个区分,改成了External ID
External ID ID code name
__export__.模块名_tb_country_1 1 001 中国
__export__.模块名_tb_country_2 2 002 美国
__export__.模块名_tb_country_3 3 003 德国
我们可以看到 两种方式导出的.CSV表结构可能有些区别,那么我们如果从外部导入原始数据的时候,应该怎么导入呢,官方建议是按照odoo的机制,最好导入外部id;
可以参考文档:
https://www.odoo.com/documentation/user/11.0/general/base_import/import_faq.html
http://www.sunpop.cn/documentation/user/10.0/zh_CN/general/base_import/import_faq.html
那我们导入数据的时候,具体应该按照哪种格式,制作CSV源表,
建议:比如我们在一个新odoo环境下,要导入国家表,那么可以按照如下格式:
方式1:
ID code name
模块名_tb_country_1 001 中国
模块名_tb_country_2 002 美国
模块名_tb_country_3 003 德国
方式2:
ID code name
__export__.模块名_tb_country_1 001 中国
__export__.模块名_tb_country_2 002 美国
__export__.模块名_tb_country_3 003 德国
方式3:
ID code name
tb_country_1 001 中国
tb_country_2 002 美国
tb_country_3 003 德国
两种方式都可以,方式1, 2加了__export__.前缀,系统也是正常识别的,不会报错,只是ID不会从1开始。(注:这里写错了 ,其实ID 不从1开始,是因为导入数据的时候,不能点击验证,否则id就不是从1开始了!!!)
建议以方式3导入,注意导入的时候ID字段的ID 要大写,不是小写。
补充知识:
postgresql 中表的字段,id字段,为整形自增字段,并且插入一条数据之后,该id是从1开始,而不是从0开始。
用truncate命令清空表之后,id字段并不会清空变成1,还是会继续历史数据id往后自增。
这里需要注意一下,
1.如果truncate命令执行的时候,提示有相关的表存在引用,执行的时候,可以加上cascade参数,具体语法:
TRUNCATE TABLE 表1,表2,表3...... cascade
表和表之间用 逗号分隔;
https://stackoverflow.com/questions/2679854/postgresql-disabling-constraints
https://www.yiibai.com/html/postgresql/2013/080676.html
2. 如果我们确实有,把id字段重置的需求,那么可以用以下方式:(注意,此方式还原id序列,并不会将数据清空,用了该方法之后,如果原表中数据没有被清空,往原表里插入数据是会报id已存在的错误的,所以该命令要配合truncete使用。)
ALTER SEQUENCE 表名_id_seq RESTART WITH 1
表名_id_seq查看获取方式:
项目中需要清空postgresql数据库中的一些表的数据,并将主键自增字段设置为1,在使用truncate在清表的时候,不能将主键自增字段重置为1,所以尝试采用下面这种方面进行重置自增的主键字段:
ALTER SEQUENCE tab_seq RESTART WITH ;
其中,tab_seq为表的序列标识(使用pgAdmin III软件序列标识位于数据库/数据库名/模式/序列/查找需要重置的序列)
odoo开发笔记 -- odoo和postgresql数据库导入相关的更多相关文章
- odoo开发笔记 -- odoo源码解析
odoo 源码解析:http://blog.csdn.net/weixin_35737303
- odoo开发笔记--odoo可用小图标
odoo系统的小图标都采用了 fontawesome字体图标 官网: http://fontawesome.dashgame.com/ Github:http://fortawesome.github ...
- odoo开发笔记 -- odoo权限管理
odoo框架 整体权限可以分为4个级别: (1) 菜单级别: 不属于指定菜单所包含组的用,看不到相应菜单.不安全,只是隐藏菜单,若用户知道菜单ID,仍然可以通过指定URL访问(2) 对象级别: 对某个 ...
- odoo开发笔记 -- odoo快速开发技巧
1. 需求分析到位 2. 系统对接,角色用例,数据串接 ---确定,轻易不可变更 3. 业务流程拆分细化 出图--开发人员理解的地步 4. 数据模型建立 --对应角色用例 5. 确立开发计划,划分功能 ...
- odoo开发笔记 -- odoo仪表板集成hightcharts
highcharts图表插件初探 http://www.cnblogs.com/liubei/p/highchartsOption.html
- odoo开发笔记 -- odoo web机制浅析
http://blog.csdn.net/M0relia/article/details/39025947
- odoo开发笔记 -- div标签代替odoo button写法
odoo开发笔记 -- div标签代替odoo button写法 并调用自定义js <footer> <div id="confirm_request_cloud_repo ...
- odoo开发笔记 -- 搜索视图继承扩展
odoo开发笔记 -- 搜索视图继承扩展
- odoo开发笔记 -- 后台日志输出及分析
odoo开发笔记 -- 后台日志输出及分析 附:日志分析软件
随机推荐
- Codeforces Round #524 (Div. 2) F. Katya and Segments Sets(主席树)
https://codeforces.com/contest/1080/problem/F 题意 有k个区间,区间的种类有n种,有m个询问(n,m<=1e5,k<=3e5),每次询问a,b ...
- java常用设计模式八:代理模式
一.概述 代理模式是指客户端并不直接调用实际的对象,而是通过调用代理,来间接的调用实际的对象. 其特征是代理类与委托类有同样的接口,真正的核心业务逻辑还是在实际对象里面. 二.为什么要使用代理模式 当 ...
- nginx 下载 大文件被截断
如果出现大文件被截断,且ngix的日志大量出现以下类似报错: 则说明是nginx没有fastcgi_temp的读写权限.其中fastcgi_temp是自己的文件夹名称,每个人的不同且路径也会不同,这个 ...
- jpa命名规范
Keyword Sample JPQL snippet And findByLastnameAndFirstname … where x.lastname = ?1 and x.firstname ...
- Reorder the Books -- hdu -- 5500
http://acm.hdu.edu.cn/showproblem.php?pid=5500 Reorder the Books Time Limit: 4000/2000 MS (Java/Othe ...
- POJ2061 Subsequence 2017-05-25 19:49 83人阅读 评论(0) 收藏
Subsequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 14709 Accepted: 6210 Desc ...
- EBS-如何查看非自己提交的请求的结果
http://www.cnblogs.com/quanweiru/p/4692071.html 如何查看非自己提交的请求的结果定位要找的请求SQL举例:SELECT req.request_id, ...
- UniGUI的TUniLoginForm窗口自定义背景色和背景图片
雨田家园 UniGUI的TUniLoginForm窗口自定义背景色 uniGUI的TUniLoginForm类创建的登录窗口默认是不带颜色,可以自定义css风格来改变背景颜色. 一般是通过在UniSe ...
- Delphi 在DLL中使用DevExpress控件时出错解决办法
测试环境 DevExpress VCL 14.1.3 和XE7 问题:在dll使用cxGrid控件时 如果不添加列标题 则不报错 查询无数据集显示,如果加上标题 就报错了 这段为报错部分 fun ...
- ReportMachine OCX 的使用方法
ReportMachine OCX http://rmachine.haotui.com/thread-55-1-1.html RMReport.ocx RMEngine.Init(1); // 初始 ...