Перенести данные из SugarCRM в Odoo?

У меня очень большая база данных в SugarCRM. Я думаю о переносе этой базы данных на Odoo. Как я могу это сделать? Я вижу, что SugarCRM и Odoo имеют совершенно разные схемы баз данных, поэтому я не могу думать о прямом переносе данных из SugarCRM в Odoo. Мне придется вручную импортировать записи в Odoo. Или есть возможность программно импортировать базу данных в Odoo?


person aqavi_paracha    schedule 16.08.2014    source источник


Ответы (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)
person kqw    schedule 17.08.2014

Вам нужна система извлечения-преобразования-загрузки, в которой вы берете данные в одной схеме, извлекаете их из БД, преобразуете их в соответствии с рядом ролей и загружаете в новую схему.

ETL можно выполнять вручную, с помощью пользовательских сценариев или с помощью специальных инструментов ETL, таких как Talend Studio, Pentaho Kettle и CloverETL. Что уместно, во многом зависит от точной природы схем источника и назначения, насколько они «нормальны», насколько хорошо они документированы, насколько они нормализованы и т. д.

person Craig Ringer    schedule 17.08.2014