Сложная миграция с Oracle на Postgres. Глава 1.
#Oracle #Postgres #ora2pg #миграция #легаси
Расскажу о проекте, который недавно довелось реализовать. Перед нами стояла задача — переезд крупной системы с одной базы данных на другую. Старый, так называемый легаси, проект работал на Oracle, а новая система должна была функционировать на Postgres. Обе системы — реляционные, и на первый взгляд, особых сложностей здесь быть не должно.
Однако...
Задача осложнялась тем, что переезд должен был пройти незаметно для пользователей, объём данных был колоссальным, и, что самое важное, менялась сама структура хранения данных. То есть таблицы практически идентичны, но ограничения на связи между ними — совершенно другие. Плюс иногда менялся формат данных. Если преобразование строка-число и обратно — задача стандартная, то с датами ситуация особенно болезненна.
Проведя анализ имеющегося инструментария, мы остановили выбор на утилите ora2pg.
Она хороша тем, что проста в установке, понятна в настройке, проверена коллегами. Однако есть и минусы — заявленный функционал не всегда работает, некоторые части настроек прямо помечены как as is — пользуйтесь, но на свой страх и риск. Бесплатный продукт, собственно.
Тренировки, естественно, проводились на DEV среде. К переезду были помечены примерно половина таблиц в схеме. Решили идти через перечисление нужных, а не исключение лишних — прямой путь нагляднее для контроля. Перечень внесли в белый список настроечного файла, настроили коннекты к обеим базам.
Запустили, и, конечно, сразу столкнулись с ошибками.
О них — в следующей главе.