Найти - Пользователи
Полная версия: Как синхронизировать две разные БД?
Начало » Python для новичков » Как синхронизировать две разные БД?
1
Suliman
Есть две БД.
FireBird и PostgreSQL

Нужно синхронизировать содержимое. Из таблицы PostgreSQL данные прокидывать в FireBird. Как это сделать? В обе таблицы я добавил флаг синхронизации. Типа проведена/не проведена.

Создаю курсор и делаю SELECT из БД1 в поисках необходимых записей. Предположим я их выбрал. А дальше как быть? Как это выборку в другую БД отправить? Создать второй объект курсора, так? А сам запрос как сформировать на основании полученных данных?

	postcursor.execute('SELECT customer_id, customer_name, customer_data, customer_priority, customer_status, fl_ready FROM CUSTOMER WHERE fl_ready=0')
	postselect_result = postcursor.fetchall()
john123
По сути Вы пишете сейчас программу для репликации данных между СУБД. Это, в общем-то, непростая задача

Если следовать Вашей реализации, то в коде Вам просто нужно держать открытыми 2 соединения - одно с FireBird, другое - с PostgreSQL. У каждого соединения будет свой курсор.
Так вот из курсора PostgreSQL делаете SELECT, а из курсора FireBird делаете INSERT.

Но вообще я бы порекомендовал синхронизировать данные через обычный слив/загрузку SQL-дампа. Конечно, если данных у Вас не очень много.
В противном случае Вам нужно будет как-то поддерживать версионность и отдавать дельту (только изменившееся), чтобы не гонять каждый раз десятки/сотни/тысячи гигабайт данных между таблицами

А вообще напишите поподробнее, в чем конкретно у Вас проблема.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB