Можно ли как-нибудь добавить эту зависимость в банку без перекомпиляции?
Это зависит.
Если вы используете сервер как java -jar myserver.jar ...
, то вам как минимум потребуется изменить манифест в файле JAR. Строго говоря, это не влечет за собой перекомпиляцию , но вам нужно взорвать, изменить и перепаковать файл JAR.
Если сервер использует Class.forName
для явной загрузки класса Oracle Driver
, вам потребуется изменить этот код, чтобы вместо этого загрузить класс Postgres Driver
. (Существуют и другие способы использования JDBC, позволяющие избежать этого, но это зависит от того, как реализован ваш старый сервер.)
Если ваш сервер использует специфичные для Oracle классы баз данных или специфичные для Oracle функции SQL (или он должен делать то же самое в мире Postgres), тогда потребуются более масштабные изменения.
Но без подробного изучения вашей кодовой базы мы не можем предсказать, что требуется.
Мой совет: замените JAR драйвера Oracle на JAR драйвера Postgres и посмотрите, что произойдет, когда ваш сервер будет работать с базой данных Postgres с соответствующими схемами и данными.
Но я бы не стал делать это "на производстве". Сделайте это в тестовой среде. Если вы не можете настроить подходящую среду тестирования ... забудьте об этом.
И если у вас нет исходного кода для вашего сервера, я бы тоже его забыл. Если что-то пойдет не так, вам, скорее всего, понадобится исходный код, чтобы выяснить проблему и исправить ее.