Мигрировать данные из SugarCRM в Odoo?
У меня очень большая база данных в SugarCRM. Я думаю о переносе этой базы данных в Odoo. Как я могу это сделать? Я вижу, что SugarCRM и Odoo имеют совершенно разные схемы базы данных, поэтому я не могу думать о прямой миграции данных из SugarCRM в Odoo. Мне придется вручную импортировать записи в Odoo. Или есть возможность программного импорта базы данных в Odoo?
2 ответа
Я работаю над миграцией из Joomla в Odoo. Joomla использует MySQL, как SugarCRM. Я запустил скрипт Python, который выполняет запросы на MySQL (через MySQLdb
), а затем передает данные в Odoo через ERPpeek, который можно использовать как автономно, так и в виде библиотеки.
С 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)
Вам нужна система извлечения-преобразования-загрузки, где вы берете данные в одной схеме, извлекаете их из БД, преобразуете их в соответствии с рядом ролей и загружаете их в новую схему.
ETL может быть выполнен вручную, с помощью пользовательских сценариев или специальных инструментов ETL, таких как Talend Studio, Pentaho Kettle и CloverETL. Что уместно, во многом зависит от точного характера исходной и целевой схем, насколько они "нормальные", насколько хорошо они документированы, насколько они нормализованы и т. Д.