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数据库导入相关的更多相关文章

  1. odoo开发笔记 -- odoo源码解析

    odoo 源码解析:http://blog.csdn.net/weixin_35737303

  2. odoo开发笔记--odoo可用小图标

    odoo系统的小图标都采用了 fontawesome字体图标 官网: http://fontawesome.dashgame.com/ Github:http://fortawesome.github ...

  3. odoo开发笔记 -- odoo权限管理

    odoo框架 整体权限可以分为4个级别: (1) 菜单级别: 不属于指定菜单所包含组的用,看不到相应菜单.不安全,只是隐藏菜单,若用户知道菜单ID,仍然可以通过指定URL访问(2) 对象级别: 对某个 ...

  4. odoo开发笔记 -- odoo快速开发技巧

    1. 需求分析到位 2. 系统对接,角色用例,数据串接 ---确定,轻易不可变更 3. 业务流程拆分细化 出图--开发人员理解的地步 4. 数据模型建立 --对应角色用例 5. 确立开发计划,划分功能 ...

  5. odoo开发笔记 -- odoo仪表板集成hightcharts

    highcharts图表插件初探 http://www.cnblogs.com/liubei/p/highchartsOption.html

  6. odoo开发笔记 -- odoo web机制浅析

    http://blog.csdn.net/M0relia/article/details/39025947

  7. odoo开发笔记 -- div标签代替odoo button写法

    odoo开发笔记 -- div标签代替odoo button写法 并调用自定义js <footer> <div id="confirm_request_cloud_repo ...

  8. odoo开发笔记 -- 搜索视图继承扩展

    odoo开发笔记 -- 搜索视图继承扩展

  9. odoo开发笔记 -- 后台日志输出及分析

    odoo开发笔记 -- 后台日志输出及分析 附:日志分析软件

随机推荐

  1. Devops 到底是什么?(转)

    出处:https://www.cnblogs.com/servicehot/p/6510199.html 过去一年以来,一批来自欧美的.不墨守陈规的系统管理员和开发人员一直在谈论一个新概念:DevOp ...

  2. n维向量空间W中有子空间U,V,如果dim(U)=r dim(V)=n-r U交V !={0},那么U,V的任意2组基向量的组合必定线性相关

    如题取U交V中的向量p (p!=0), 那么p可以由 U中的某一组基线性组合成(系数不全是零),同时,-p也可以由V中的某一组基线性组合成(系数不全为零) 考察p+(-p)=0 可知道,U中的这组基跟 ...

  3. openstack之虚拟机管理命令

    在控制节点上建hzb-openrc.sh export OS_PROJECT_DOMAIN_ID=default export OS_USER_DOMAIN_ID=default export OS_ ...

  4. IntelliJ IDEA 2017版 spring-boot2.0.4的集成JSP

    一.必须依赖四个包,其中三个是springboot自带包,可以不写版本号,有一个不在springboot中,需要设置版本号 <!--引入Spring Boot内嵌的Tomcat对Jsp的解析包- ...

  5. css3实现切片动画

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <meta http- ...

  6. sea.js教程

    转载自:http://blog.codinglabs.org/articles/modularized-javascript-with-seajs.html 前言 SeaJS是一个遵循CommonJS ...

  7. day29(对象转xml(使用java))

    通常使用xStream工具. 将集合,数组,对象转成XML. 导入两个包: xpp3_min-1.1.4c.jar xstream-1.4.4.jar 自定义一个类 package com.baidu ...

  8. (区间dp 或 记忆化搜素 )Brackets -- POJ -- 2955

    http://poj.org/problem?id=2955 Description We give the following inductive definition of a “regular ...

  9. 如何将指定文件或文件夹直接提交到svn指定目录

    以下步骤适用于客户端是Tortoisesvn  服务端是VisualSVN Server的SVN库: 安装Tortoisesvn 获取配置库路径 checkout想要提交到的SVN库或目录 将需要提交 ...

  10. CI

    做项目时,经常会碰到需要使用php的情况,自己也下决心把php好好学一下. 先从CI开始,再看一下项目中的php代码是如何写的.