zoukankan      html  css  js  c++  java
  • 通过域名方式决定使用哪个数据库的方式分享

    来自:http://shine-it.net/index.php/topic,16199.msg27430.html

     

    当前OPENERP只有一个功能,就是公司内部使用,不过老板又有一个要求,需要给客户那边也用,但是使用的是同一个软件,不同库,客户使用时不能看到其它人使用的库,
    我感觉这个功能应该在多个库时比较有多,当前分享一下做法
    1.有两个域名分别是    a.openerp.com     b.openerp.com
    2.当使用a.openerp.com时,访问数据库A   ,当使用b.openerp.com时,使用数据库B
    3.找到函数:addonswebcontrollersmain.py 下的db_list函数,在函数修改为: ####中为添加的代码

    def db_list(req, force=False):
        proxy = req.session.proxy("db")
        dbs = proxy.list(force)
        h = req.httprequest.environ['HTTP_HOST'].split(':')[0]
        ####################
        onedb=openerp.tools.config.get(h+'_db',False)
        if onedb!=False:
            return [onedb]
        ####################
        d = h.split('.')[0]
        r = openerp.tools.config['dbfilter'].replace('%h', h).replace('%d', d)
        dbs = [i for i in dbs if re.match(r, i)]
        return dbs

    4.可以看到,它读取了config中的内容,所以你需要在openerp-server.conf中添加配置:
    a.openerp.com_db=A
       b.openerp.com_db=B

    5.完成
    说明:以前代码不影响正常使用,如果配置文件中没有写相应的数据库,则会按照老方法显示页面,但如要已经配置数据库,那么登录页面中将不会显示数据库选择,强制和已设置的数据库。
    加入ODOO8的方式,修改的代码文件位置是:D:GreenOdoosourceopenerphttp.py
    修改源码为:
    def db_filter(dbs, httprequest=None):
        httprequest = httprequest or request.httprequest
        h = httprequest.environ.get('HTTP_HOST', '').split(':')[0]
        d, _, r = h.partition('.')
        ##开始进行替换=========
        if r=='':    #只有一级域名
            d='www'
        r=openerp.tools.config.get(d+'_db',dbs)
        ##替换结束=============
        ##原始内容
        #if d == "www" and r:
        #    d = r.partition('.')[0]
        #r = openerp.tools.config['dbfilter'].replace('%h', h).replace('%d', d)
        ##原始内容结束
        dbs = [i for i in dbs if re.match(r, i)]
        return dbs

  • 相关阅读:
    使用commonscompress操作zip文件(压缩和解压缩)
    BoneCP的使用
    Struts2多文件上传
    shell 脚本转换 十六进制 十进制 八进制 二进制
    磁盘 I/O 性能监控指标和调优方法
    需求分析的故事——如何练就需求分析的火眼金晴?
    Debian 修改IP地址或DNS
    mysql主从备份
    ThinkPad T400 安装Windows Server 2008详细过程
    debian下,怎么ll命令注册
  • 原文地址:https://www.cnblogs.com/chjbbs/p/4467982.html
Copyright © 2011-2022 走看看