我在 SugarCRM 中有一个非常大的数据库。我正在考虑将该数据库迁移到 Odoo。我怎样才能做到这一点?我看到的是 SugarCRM 和 Odoo 有完全不同的数据库模式,所以我想不出直接将数据从 SugarCRM 迁移到 Odoo。我将不得不在 Odoo 中手动导入条目。或者有没有可能以编程方式在 Odoo 中导入数据库?
问问题
1491 次
2 回答
3
我正在从 Joomla 迁移到 Odoo。Joomla 使用 MySQL,就像 SugarCRM 一样。我启动了一个 Python 脚本,它在 MySQL 上运行查询(通过MySQLdb
),然后通过 ERPpeek 将数据获取到Odoo中,您可以单独使用它也可以将其用作库。
使用 ERPpeek,您可以轻松了解如何使用 Odoo 的数据结构。
从你能找到的最简单的数据开始是最方便的。
这是一些可以帮助您入门的代码。它没有按原样工作,但我认为这是一个有用的开始:
from erppeekinit import *
import MySQLdb
def get_dict_cursor():
db = MySQLdb.connect(host="localhost",
user="odoo_import",
passwd="",
db="sugarcrm")
# DictCursor returns mysql rows as dictionary {column_name:value, ...}
return db.cursor(MySQLdb.cursors.DictCursor)
def mysql2odoo(table, model_name):
model = odoo.model(model_name)
dict_cur.execute("SELECT * FROM " + table)
for row in dict_cur.fetchall():
if model.browse([.... ...]):
data = {'name': ...
}
object = model.create(data)
else:
print 'skipping already imported product: ' + row['name']
dict_cur = get_dict_cursor()
table, model = ('your_sugar_crm_table', 'the_odoo.table')
mysql2odoo(table, model)
于 2014-08-17T09:51:37.137 回答
2
您需要的是一个提取-转换-加载系统,您可以在一个模式中获取数据,从数据库中提取数据,根据一系列角色对其进行转换,然后将其加载到新模式中。
ETL 可以通过自定义脚本或 Talend Studio、Pentaho Kettle 和 CloverETL 等专用 ETL 工具手动完成。什么是合适的在很大程度上取决于源模式和目标模式的确切性质、它们的“理智”程度、它们的记录程度、它们的规范化程度等。
于 2014-08-17T13:05:04.327 回答