Есть ли какие-нибудь хорошие инструменты для переноса существующих баз данных firebird на PostgreSQL для систем Linux?
Я смотрел: FBexport который можно использовать для сброса данных в виде операторов вставки, но в основном он написан для экспорта / импорта из одной базы данных firebird в другую, а не как инструмент миграции.
Есть также: Инструмент Firebird для PostgreSQL Win32, но это только для систем win32.
Есть ли хороший инструмент для этого? Или я должен просто свернуть свою?
Когда мне нужно было переместить некоторые сложные данные из базы данных MySQL в базу данных PostgreSQL, я написал сценарий perl, который подключался к базе данных MySQL, выбирал данные, выполнял любые необходимые преобразования (например, tinyint (1) в логическое значение и автоинкремент в последовательность и т.д.) и вставил его в базу данных PostgreSQL. Для более простых преобразований я сделал mysql_dump в файле операторов вставки, как это сделает ваш FBexport, а затем исправил то, что нужно было исправить, с помощью сценария sed. Он не автоматизирован и не совершенен, но работает достаточно быстро и хорошо.
Проверь это:
http://www.sqlmanager.net/en/products/postgresql/datapump
Я никогда им не пользовался, поэтому не могу сказать, хорошо он или нет.
Вы можете использовать FullConverter, но я не думаю, что какой-либо коммерческий инструмент сработает одним щелчком мыши. вам нужно будет проверить ограничения, индексы и автоинкременты.
вы также можете попробовать написать свой собственный сценарий bash / perl / python / любой другой для выполнения этой работы.
Судя по полученным мной отзывам, я понимаю, что специального инструмента миграции для Firebird -> PostgreSQL в Linux нет.
Думаю, мне придется написать это самому.
Основная проблема здесь - оптимизация производительности такой миграции.
Я нашел отличный ресурс в главе 14 документации postgreSQL, в котором объясняется, как лучше всего вставлять большие объемы данных в postgreSQL, например: