我有3个数据库,其中:
我想将3个数据库全部合并为一个数据库,并且我希望结果数据库能够被odoo识别。
我认为必须将每个数据库中每个表的数据复制到目标中,但是正如您所知,在存储数据时,odoo会对所有表使用自动增量主键,并且在复制这些表时我必须同步与那些表相关的外键的ID,因为我看到这也许是我将要面对的唯一问题。
所以我的要求是:在数据移到目标数据库后,我需要一个工具来自动同步外键。
(简要说明:向我建议完成工作的最短路径)。
答案 0 :(得分:1)
您是否熟悉Odoo的外部ID(也称为xmlids
)?它们是一种指针,存储在名为ir_model_data
的表中。 xmlid
是使用点作为分隔符将module
和name
字段连接起来的结果,它指向与model
字段对应的表上的一条记录,该记录也id
等于res_id
字段的值。
因此,编写一个脚本,该脚本连接到3个数据库,并且一次在一个表上进行记录,查看它是否存在于其他两个数据库上,以巧妙的方式分配外部ID并将其传播给另一个具有相同记录的数据库。
然后使用Odoo的导出功能从两个数据库中导出表,并将它们加载到第三个数据库中。
请务必先备份数据库,并且永远不要在原始数据库上工作,而只能在副本上工作。
免责声明:根据数据库的复杂性,其中包含的数据以及用于识别其他数据库中是否存在记录的算法,这种方法可能有效,也可能无效。