在一个数据库中合并三个 odoo (postgreSQL) 数据库
merge three odoo (postgreSQL) databases in one database
我有 3 个数据库:
- 相同 tables
- 相同架构
- 不同的数据
我想将所有3个数据库合并为一个数据库,我希望结果数据库能够被odoo识别。
我认为要做到这一点,我必须将每个 table 的数据从每个数据库复制到目标中,但是正如您所知,odoo 在存储数据时,它对所有 tables 并且,当我复制那些 tables 时,我必须同步与那些 tables 相关的外键的 ID,正如我所见,这可能是我将面临的唯一问题。
所以我的要求是:我需要一个工具,可以在数据移动到目标数据库后自动同步外键。
(简述:向我建议完成这项工作的最短路径)。
您熟悉 Odoo 的外部 ID(也称为 xmlids
)吗?它们是一种存储在名为 ir_model_data
的 table 中的指针。 xmlid
是使用点作为分隔符连接 module
和 name
字段的结果,它指向 table 上与 [=15= 相对应的记录] 字段也有一个 id
等于 res_id
字段的值。
所以,写一个脚本,连接3个数据库,一个table当时,取一条记录,看看它是否存在于其他两个数据库上,巧妙地分配一个外部id并将其传播到具有相同记录的其他数据库。
然后使用 Odoo 的导出功能从两个数据库中导出您的 tables 并将它们加载到第三个数据库中。
请务必先备份您的数据库,切勿使用原始数据库,而是使用副本。
免责声明:此方法可能有效也可能无效,具体取决于您的数据库的复杂性、其中包含的数据以及您用于识别记录是否存在于其他数据库中的算法。
我有 3 个数据库:
- 相同 tables
- 相同架构
- 不同的数据
我想将所有3个数据库合并为一个数据库,我希望结果数据库能够被odoo识别。
我认为要做到这一点,我必须将每个 table 的数据从每个数据库复制到目标中,但是正如您所知,odoo 在存储数据时,它对所有 tables 并且,当我复制那些 tables 时,我必须同步与那些 tables 相关的外键的 ID,正如我所见,这可能是我将面临的唯一问题。
所以我的要求是:我需要一个工具,可以在数据移动到目标数据库后自动同步外键。
(简述:向我建议完成这项工作的最短路径)。
您熟悉 Odoo 的外部 ID(也称为 xmlids
)吗?它们是一种存储在名为 ir_model_data
的 table 中的指针。 xmlid
是使用点作为分隔符连接 module
和 name
字段的结果,它指向 table 上与 [=15= 相对应的记录] 字段也有一个 id
等于 res_id
字段的值。
所以,写一个脚本,连接3个数据库,一个table当时,取一条记录,看看它是否存在于其他两个数据库上,巧妙地分配一个外部id并将其传播到具有相同记录的其他数据库。
然后使用 Odoo 的导出功能从两个数据库中导出您的 tables 并将它们加载到第三个数据库中。
请务必先备份您的数据库,切勿使用原始数据库,而是使用副本。
免责声明:此方法可能有效也可能无效,具体取决于您的数据库的复杂性、其中包含的数据以及您用于识别记录是否存在于其他数据库中的算法。