Добавить отсутствующий драйвер в устаревший проект в производстве - PullRequest
0 голосов
/ 18 апреля 2019

Я переношу устаревший проект на новый сервер.Ранее проект использовал базу данных Oracle, но теперь я хочу, чтобы он использовал Postgress.Запросы достаточно просты и работают одинаково в Postgres.

Однако в проекте отсутствует jdbc-драйвер Postgres.Могу ли я как-нибудь добавить эту зависимость в банку без перекомпиляции?

1 Ответ

1 голос
/ 18 апреля 2019

Можно ли как-нибудь добавить эту зависимость в банку без перекомпиляции?

Это зависит.

  • Если вы используете сервер как java -jar myserver.jar ..., то вам как минимум потребуется изменить манифест в файле JAR. Строго говоря, это не влечет за собой перекомпиляцию , но вам нужно взорвать, изменить и перепаковать файл JAR.

  • Если сервер использует Class.forName для явной загрузки класса Oracle Driver, вам потребуется изменить этот код, чтобы вместо этого загрузить класс Postgres Driver. (Существуют и другие способы использования JDBC, позволяющие избежать этого, но это зависит от того, как реализован ваш старый сервер.)

  • Если ваш сервер использует специфичные для Oracle классы баз данных или специфичные для Oracle функции SQL (или он должен делать то же самое в мире Postgres), тогда потребуются более масштабные изменения.

Но без подробного изучения вашей кодовой базы мы не можем предсказать, что требуется.

Мой совет: замените JAR драйвера Oracle на JAR драйвера Postgres и посмотрите, что произойдет, когда ваш сервер будет работать с базой данных Postgres с соответствующими схемами и данными.

Но я бы не стал делать это "на производстве". Сделайте это в тестовой среде. Если вы не можете настроить подходящую среду тестирования ... забудьте об этом.

И если у вас нет исходного кода для вашего сервера, я бы тоже его забыл. Если что-то пойдет не так, вам, скорее всего, понадобится исходный код, чтобы выяснить проблему и исправить ее.

...