Команда Symfony 3.4 против oracle-кошелька ORA-12154: TNS: не удалось разрешить указанный идентификатор подключения - PullRequest
0 голосов
/ 17 октября 2019

У меня есть приложение Symfony 3.4, подключенное к БД Oracle через кошелек, поэтому конфигурация имени пользователя и пароля БД находится вне приложения и моего контроля.

Чтобы позволить приложению работать с этимКонкретную конфигурацию я добавил в config.yml, параметр:

doctrine:
    dbal:
        connections:
            default:
                ...
                session_mode: !php/const OCI_CRED_EXT 
                ...

Приложение работает без проблем.

У меня есть функция синхронизации, которая подключается к различным БД и синхронизирует некоторые данные. Функция синхронизации может быть запущена вручную в пользовательском интерфейсе приложения, и она работает.

Я написал консольную команду для запуска в задании cron, которое создает экземпляр того же набора классов, который использовался приложением вручную, но я получил ошибку вобъект, когда я выполняю команду через терминал.

Точная ошибка:

In AbstractOracleDriver.php line 57:

  An exception occurred in driver: ORA-12154: TNS:could not resolve the connect identifier specified  


In OCI8Exception.php line 16:

  ORA-12154: TNS:could not resolve the connect identifier specified

Та же ошибка возникает при тестировании соединения БД с консолью:

#php .\bin\console  doctrine:query:sql "select sysdate,current_date from dual"

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

Есть ли у кого-нибудь какие-нибудь предложения по устранению проблемы?

Спасибо, Марко

...