小编for*_*vas的帖子

如何在 PostgreSQL 中恢复集群备份?

我正在尝试在 PostgreSQL 中恢复集群备份。我使用了 pg_dumpall,它生成了一个带有 SQL 查询的纯文本文件。但是,当我尝试恢复它时,出现此错误:

pg_restore: [archiver] 输入文件似乎不是有效的存档

当我尝试恢复数据库的备份(用 pg_dump 生成)时,我也收到了同样的错误,但我解决了这个问题。在那种情况下,pg_restore 无法通过 SQL 查询识别纯文本,因此我更改了命令:

pg_dump db_name -Fc -U user -h host -p port > my_db_backup.dump
Run Code Online (Sandbox Code Playgroud)

而是写道:

pg_dump db_name -Fp -U user -h host -p port > my_db_backup.dump
Run Code Online (Sandbox Code Playgroud)

这样生成的文件不是纯文本,所以 pg_restore 可以很好地处理它。

现在,我正在尝试使用 pg_dumpall 进行相同的管理,但是没有 -F 参数。我的代码(在 Python3 中,但此命令对于任何语言都是相同的)是:

pg_dumpall -U user -h host -p port > my_cluster_backup.dump
Run Code Online (Sandbox Code Playgroud)

知道如何管理这个吗?或者至少如何以任何方式恢复集群备份?先感谢您!

编辑

如果我使用psql来恢复:

psql -U user -h host -p port -f my_cluster_backup.dump postgres'
Run Code Online (Sandbox Code Playgroud)

它似乎有效,控制台中显示了很多命令,但每个命令都给出了“它已经存在”的错误。我无法理解,因为我有两个集群(端口 5432 和 5433),我猜它正在尝试在 5432 中恢复,当我确定我已连接到 5433 时。以前有人遇到过这个问题吗?

postgresql dump pg-restore

5
推荐指数
1
解决办法
5209
查看次数

如何更改sale.order.line的不同树的默认排序顺序

如何更改sale.order.line的不同树的默认排序顺序

例如:按名称排序

<record id="_view_sale_order_line_tree" model="ir.ui.view">
    <field name="name">sale.order.line.tree1</field>
    <field name="model">sale.order.line</field>
    <field name="type">tree</field>
    <field name="priority" eval="1"/>
    <field name="arch" type="xml">
        <tree string="Sales Order Lines" >
            <field name="name"/>
            <field name="sequence"/>
        </tree>
    </field>
</record>
Run Code Online (Sandbox Code Playgroud)

按顺序排序

<record id="_view_sale_order_line_tree2" model="ir.ui.view">
    <field name="name">sale.order.line.tree2</field>
    <field name="model">sale.order.line</field>
    <field name="type">tree</field>
    <field name="priority" eval="2"/>
    <field name="arch" type="xml">
        <tree string="Sales Order Lines" >
            <field name="order_id"/>
            <field name="sequence"/>
        </tree>
    </field>
</record>
Run Code Online (Sandbox Code Playgroud)

xml odoo

5
推荐指数
1
解决办法
1万
查看次数

如何使用 PHP7 Ripcord 库获取 Odoo 数据?

我正在尝试通过 XMLRPC 从 Odoo 获取一些数据,并且正在使用 PHP 及其 Ripcord 库(在https://www.odoo.com/documentation/8.0/api_integration.html上推荐)。

所以我按照该页面上写的步骤进行操作。

首先,我从https://github.com/poef/ripcord.git下载了 Ripcord 文件。我将它们保存在名为ripcord的文件夹中,该文件夹位于我的 PHP 页面的索引目录中。

其次,我启用了 PHP7 的 OpenSSL 和 XMLRPC 扩展。我认为我做得很好,因为如果我执行下一句话:

$modules = get_loaded_extensions();
foreach ($modules as $module) {
    echo $module.', ';
}
Run Code Online (Sandbox Code Playgroud)

我得到这个结果:

核心、日期、libxml、openssl、pcre、zlib、过滤器、哈希、反射、SPL、会话、标准、apache2handler、mysqlnd、PDO、xml、日历、ctype、curl、dom、mbstring、fileinfo、ftp、gd、gettext、 iconv、json、exif、mcrypt、mysqli、pdo_mysql、Phar、posix、readline、shmop、SimpleXML、套接字、sysvmsg、sysvsem、sysvshm、分词器、wddx、xmlreader、xmlrpc、xmlwriter、xsl、Zend OPcache、

现在,这是我的index.php 的代码:

$url = 'http://localhost:30080';
$db = 'db_v80_test_01';
$username = 'admin';
$password = 'adminpwd';

require_once('ripcord/ripcord.php');

// $info = ripcord::client($url)->start(); 
// list($url, $db, $username, $password) = array($info['host'], $info['database'], $info['user'], $info['password']);

$common = ripcord::client($url.'/xmlrpc/2/common');

$uid …
Run Code Online (Sandbox Code Playgroud)

php xml-rpc odoo odoo-8 ripcord

5
推荐指数
1
解决办法
8655
查看次数

如何解决 Odoo 中的动态域问题?

我创建了一个名为 的新模型product.service.type。然后,在product.product模型中,我还创建了一个Many2many字段(名为service_type,指向product.service.type模型)。

现在我有了 model test,它有product_idservice_type_id字段,分别Many2one指向product.productproduct.service.type

我想要的是,如果您选择一个产品,服务类型域将更改为仅显示所选产品的服务类型。我通过以下方式做到了这一点onchange

def onchange_product_id(self, cr, uid, ids, product_id, context=None):
    if product_id:
        product = self.pool.get('product.product').browse(
            cr, uid, [product_id], context=context)
        service_type_ids = product.service_type.mapped('id')
        return {
            'domain': {
                'service_type_id': [('id', 'in', service_type_ids)],
            },
        }
Run Code Online (Sandbox Code Playgroud)

这很好用,问题是当您编辑记录(而不是创建新记录)时,因为在这种情况下,onchange未执行记录,因此域显示所有服务类型。

您可以在合作伙伴表单中使用字段看到同样的问题title。新建一个合作伙伴,该合作伙伴是公司,字段的域title发生变化,只允许选择Corp.Ltd.等记录,但如果设置合作伙伴是联系人,则可以选择DoctorMadam等记录现在,将您想要的数据保存到伙伴中,然后转到顶部栏的其他菜单。返回合作伙伴表单并打开创建的合作伙伴进行编辑。检查title字段而不更改is_company字段。现在您拥有所有可用的头衔,尽管您的合作伙伴属于特定类别(公司或联系人)。 …

python python-2.7 odoo odoo-8

5
推荐指数
1
解决办法
1225
查看次数

CRM模块中的Many2one res.partner筛选器

我正在尝试在CRM模块的机会部分对客户进行分组。

我想在上分组客户/机会industry

我已经使用过类似的代码res.partner,但我无法解决这一问题!

models.py

x_industry_id = fields.Many2one(string="Industry", comodel_name="res.partner")
Run Code Online (Sandbox Code Playgroud)

views.xml

 <record id="view_crm_case_opportunities_filter_inherit" model="ir.ui.view">
    <field name="name">crm.lead.search.opportunity</field>
        <field name="model">crm.lead</field>
    <field name="inherit_id" ref="crm.view_crm_case_opportunities_filter"/>
    <field name="arch" type="xml">

     <xpath expr="//search" position="inside">

        <filter name="x_industry_id" string="Industry" context="{'group_by':'x_industry_id'}" domain="[('industry_id','!=', False)]"/>

       </xpath>

    </field>
</record>
Run Code Online (Sandbox Code Playgroud)

对于使用相同方法的过滤器和其他组,我也遇到相同的问题。

它们只是看起来不正常!

如何将群组和过滤器应用于不同的模型

xml python-3.x odoo odoo-11

5
推荐指数
1
解决办法
226
查看次数

为什么 Python 3 virtualenv 找不到某些已安装的软件包?

我正在使用一个名为env执行 Odoo 的 Python virtualenv。在 virtualenvbin目录中,我得到了这个:

pip
pip3
pip3.8

python -> /usr/bin/python3
python3 -> python
python3.8 -> python
Run Code Online (Sandbox Code Playgroud)

Odoo 服务正在运行此命令来执行 Odoo(如您所见,使用python3.8virtualenv 的):

ExecStart=/opt/odoo/env/bin/python3.8 /opt/odoo/odoo_13/src/oca/OCB/odoo-bin -c /opt/odoo/odoo_13/config/.odoo.conf
Run Code Online (Sandbox Code Playgroud)

问题是,Odoo 时不时地会给出以下严重错误,并且实例停止工作:

ModuleNotFoundError:没有名为“werkzeug”的模块

似乎该werkzeug软件包尚未安装,但是,如果我执行以下操作:

anubia@my-server:/opt/odoo$ . env/bin/activate

(env) anubia@my-server:/opt/odoo$ which pip
/opt/odoo/env/bin/pip

(env) anubia@my-server:/opt/odoo$ which pip3
/opt/odoo/env/bin/pip3

(env) anubia@my-server:/opt/odoo$ which pip3.8
/opt/odoo/env/bin/pip3.8

(env) anubia@my-server:/opt/odoo$ pip3.8 install werkzeug
Requirement already satisfied: werkzeug in ./env/lib/python3.8/site-packages (0.11.15)

(env) anubia@my-server:/opt/odoo$ cd env/lib/python3.8/site-packages/
Display all 125 possibilities? (y or n)
Babel-2.9.1.dist-info/ …
Run Code Online (Sandbox Code Playgroud)

python virtualenv python-3.x odoo odoo-13

5
推荐指数
1
解决办法
1721
查看次数

如何在 Odoo 10 中从 Python 返回现有的 ir.actions.act_window?

我需要的

如果用户单击我的按钮,则根据当前记录的字段将他带到不同模型的不同视图。

我做了什么

我已经声明了一个类型对象按钮来调用 Python 方法。在里面,我检查了字段。如果它的值为A,我将他重定向到模型X,如果它的值为 B ,我将他重定向到模型Y

编码

@api.multi
def my_button_method(self):
    self.ensure_one()
    if self.my_field == 'A':
        action_id = self.env.ref(
            'my_module.my_ir_actions_act_window_A')
        return action_id.__dict__
    elif self.my_field == 'B':
        action_id = self.env.ref(
            'my_module.my_ir_actions_act_window_B')
    else:
        action_id = False
    if action_id:
        return action_id.__dict__
Run Code Online (Sandbox Code Playgroud)

如果我在定义之后写这个action_id

_logger.info(action_id.name)
_logger.info(action_id.type)
_logger.info(action_id.res_model)
_logger.info(action_id.view_type)
_logger.info(action_id.view_mode)
_logger.info(action_id.search_view_id)
_logger.info(action_id.help)
Run Code Online (Sandbox Code Playgroud)

我得到了正确的价值观。因此,在谷歌搜索之后,我看到它__dict__为您提供了一个字典,其键是对象的属性,其值是这些属性的值。

但是代码给出了一个错误,因为action_id.__dict__它没有返回一个包含动作及其值的预期属性的字典,而是以下内容:

{
    '_prefetch': defaultdict(
        <type 'set'>,
        {
            'ir.actions.act_window': set([449])
        }
    ),
    'env': <odoo.api.Environment object at 0x7f0aa7ed7cd0>,
    '_ids': (449,) …
Run Code Online (Sandbox Code Playgroud)

python xml odoo odoo-10

4
推荐指数
1
解决办法
4712
查看次数

在OpenERP中以本地语言获取产品名称?

这是一个非常简单但难以回答的问题,因为我认为只有"少数"人才能解决这个问题.

我在Python中有这个简单的脚本:

import xmlrpclib

username = 'my_openerp_user'
pwd = 'my_password'
dbname = 'my_openerp_database'

sock = xmlrpclib.ServerProxy('http://localhost:8063/xmlrpc/common')
uid = sock.login(dbname, username, pwd)
sock = xmlrpclib.ServerProxy('http://localhost:8063/xmlrpc/object')

args = [('name', 'ilike', 'my_product')]
ids = sock.execute(dbname, uid, pwd, 'product.product', 'search', args)

print ids
Run Code Online (Sandbox Code Playgroud)

它应该在OpenERP数据库中找到名为"my_product"的所有产品,但事实并非如此.我知道为什么:

我不在一个谈论英语的国家,所以我在OpenERP中安装了一种语言,而xmlrpc的'搜索'正在寻找名为'my_product'的产品,但只有英文版.问题是显然没有一个字段来保存翻译的名称......它似乎也是"名字"!如果我用我的语言指定他们的名字,我找不到产品.

世界上任何人都有同样的问题吗?

编辑

好的,我有一个线索:如果不是'搜索',我会'读':

product_names = sock.execute(dbname, uid, pwd, 'product.product', 'read', ids, ['name'], {'lang': 'es_ES'})
Run Code Online (Sandbox Code Playgroud)

这样我可以指定语言,它的工作原理!但我不能用'搜索'做同样的事情,我得到错误.谁知道的方式???

新编辑

context = {'lang': 'es_ES'}

args = [('name', 'ilike', 'my_product')]  # consulta

ids = sock.execute(dbname, uid, pwd, 'product.product', 'search', args, context)
Run Code Online (Sandbox Code Playgroud)

python xmlrpclib odoo

3
推荐指数
1
解决办法
1843
查看次数

如何删除Python3中的递归空文件夹?

我想删除目录的空文件夹.

def remove_empty_dir(path):
    try:
        os.rmdir(path)
    except OSError:
        pass

def remove_empty_dirs(path):
    for root, dirnames, filenames in os.walk(path):
        for dirname in dirnames:
            remove_empty_dir(os.path.realpath(os.path.join(root, dirname)))

remove_empty_dirs(path)
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

import shutil
shutil.rmtree(path)
Run Code Online (Sandbox Code Playgroud)

但这会删除所有内容,甚至包含内容的文件夹.问题是我需要从内到外进行,这样如果我有:

root_folder
  child_folder1
    grandchild_folder1.1 (empty)
  child_folder2
    granchild_folder2.1
    granchild_folder2.2 (empty)
Run Code Online (Sandbox Code Playgroud)

该程序应删除grandchild_folder1.1,child_folder1和child_folder2.2,但不删除其余部分.

python directory python-3.x

3
推荐指数
2
解决办法
1137
查看次数

迁移模块从 10 到 12

我正在尝试将模块从 Odoo 10 迁移到 12,但它向我显示此错误,我不明白为什么:

\n\n
\n

属性中使用的字段“状态”必须出现在视图中,但缺失

\n
\n\n

你能帮我解决这个问题吗:

\n\n
Field \'state\' used in attributes must be present in view but is missing:\n - \'state\' in attrs="{\'invisible\': [\'|\',\'|\',(\'journal_entry_ids\', \'!=\', []), (\'state\', \'=\', \'confirm\'),(\'type\', \'!=\', \'bank\')]}"\n - \'state\' in attrs="{\'invisible\': [\'|\',\'|\',(\'journal_entry_ids\', \'=\', []), (\'state\', \'=\', \'confirm\'),(\'type\', \'!=\', \'bank\')]}"\n\nError context:\nView `account.bank.statement.form.reconciliation`\n[view_id: 1684, xml_id: n/a, model: account.bank.statement, parent_id: 462]\nNone while parsing /home/PycharmProjects/Odoo12/bank_reconciliation/views/account_view.xml:4, near\n<record id="view_bank_statement_form_reconciliation" model="ir.ui.view">\n    <field name="name">account.bank.statement.form.reconciliation</field>\n    <field name="model">account.bank.statement</field>\n    <field name="inherit_id" ref="account.view_bank_statement_form"/>\n    <field name="arch" type="xml">\n        <data>\n            <field name="date" position="after">\n                <field name="type" …
Run Code Online (Sandbox Code Playgroud)

python xml odoo odoo-10 odoo-12

3
推荐指数
1
解决办法
830
查看次数