24.odoo入门——工作杂记

24——————

上午:

开始转入培训管理项目,由于原来的队友都没有使用git,我要拿到他们的项目包之后上传到git,

那么问题来了——如何往一个空的仓库里面放放文件呢

你有一个空的存储库

To get started you will need to run these commands in your terminal.

第一次配置Git

git config --global user.name “***

git config --global user.email “***@example.com"

使用您的存储库

我只想克隆这个存储库

如果要简单地克隆此空存储库,请在终端中运行此命令。

git clone git地址

我的代码已经准备好推送

如果你代码已经准备好推送到仓库,请在终端中执行该命令

cd existing-project
git init
git add --all
git commit -m "Initial Commit"
git remote add origin git地址
git push -u origin master

我的代码已经由Git跟踪

如果你的代码已经由Git跟踪,然后设置这个仓库作为你的“origin”推送。

cd existing-project
git remote set-url origin git地址
git push -u origin master

上传到git后,就要开始看懂这个项目的架构和设计

然后又遇到了一个问题:就是我拷贝了队友的整个包,用pycharm打开的时候,然后进入服务端的时候总是报错,提示找不到一个明明已经存在的包。但是在输入from 时都可以自动读取到这个包名,再import的时候也可以读取到对应的模块名

因此,猜测是配置问题。后来,果然在odoo的启动设置中发现了问题——原来是在拷贝包的时候,由于启动需要的python包的路径不一样,odoo选择了Project default(None),所以导致Python环境没有运行起来


接下来那么就可以拿到这整一个新的包进行工作了,那么又一个问题来了——如何将这份新的包push到我原来有文件的git仓库呢?允许直接覆盖吗?

Pycharm直接打开,默认git的远程仓库是:http://stash.wens.com.cn/scm/pub/odoo10.git/

我们应该先修改这个远程仓库地址, 参考博客:http://blog.youkuaiyun.com/zhou_aa/article/details/53391718

命令如下:

git remote -v 查看远程origin 
git remote rm origin 删除远程origin 
git remote add origin git地址名

修改完毕后,添加远程仓库,再push上远程仓库,但是提示

hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

提示必须先pull再进行push操作:

当我进行push操作后,又提示:

From http://bitbucket.wens.com.cn:7990/scm/wtrain/wens-training-manager
 * branch              master     -> FETCH_HEAD
fatal: refusing to merge unrelated histories

百度,参考博客: http://blog.youkuaiyun.com/lindexi_gd/article/details/52554159

输入 git pull origin master --allow-unrelated-histories命令后

又提示:

From http://bitbucket.wens.com.cn:7990/scm/wtrain/wens-training-manager
 * branch              master     -> FETCH_HEAD
error: The following untracked working tree files would be overwritten by merge:
        .DS_Store
Please move or remove them before you merge.
Aborting

这里有个奇怪的.DS_Store文件是啥呢?原来跟Mac的finder文件系统有关,参考链接:https://www.zhihu.com/question/20345704

最后决定删除这个项目包,重新git clone一个下来算了.

后来我一位实习生lyj在我的劝说下也和我一起使用git,后来也遇到了我遇到过的问题,但是没有像我那样解决,于是就用命令行强制把.DS_Store文件删除掉就可以成功pull再push了。

需要参考一下linux的文件操作命令:http://www.cnblogs.com/zf2011/archive/2011/05/17/2049155.html

使用命令:rm -rf .DS_Store

最后终于弄好git了,开始接触这个项目的数据模型,熟悉项目流程


大概熟悉了几个表的数据关系之后,发现其实逻辑还是比较简单的。

注意到一点平时用数据库没有注意到的知识点:在表的字段对应关系中,有many2one, one2many, many2many

首先,many2one的字段是会存储在本表中,但是,显然,one2many的字段是不可能存储在本表中的,这个字段的对应就只能在有映射关系的那个表中看到(在那个表中就是many2one)

而many2many在2个有映射关系的表中都是看不到的,按照关系型数据库的逻辑,应该是存储在一个中间表中了。比如说课程和学生就是many2many的关系

google一下这个odoo的many2many,参考地址:  http://www.odoov.com/index.php?title=%E5%A4%9A%E5%AF%B9%E5%A4%9A%E5%85%B3%E7%B3%BB

在数据库层面,数据库表中是不会添加任何字段。它会自动的创建一个新的中间表,这个表只有两个外键ID字段,并且这两个字段分别关联对应的数据库表。这个中间表和字段的名字都是自动生成的。中间表的名字是两个表的名字用下划线拼接后在加上_rel组成的

这里还说到2个问题:

有时候,我们可能需要改变这种自动的默认值。

其中的一种情况就是,关联的模块有很长的名字,那么自动生成的中间表的名称就会很长,可能会超出PostgreSQL对于表名不得多于63个字符的限制。这种情况下,我们就需要手动选择一个不超出限制的名字。

另一种情况,在相同的模块中需要两个many2many的关系。这种情况,我们也需要手动的为中间表添加名称,只有这样,才能避免数据库名称冲突。

更多资料请参考链接。


晚上7点:

又遇到了一个奇怪的问题:

就是本来打开网页是可以获取到js的,后来按后退键,就再也获取不到js了—————找几个大佬看看也没有解决这个问题。ws_base包里面报错,我替换了整个包,这个问题依旧没有解决,然后我就老套路,删库————结果就解决了。。有时候这个计算机就是那么玄学- - 真是充满挫折的一天!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值