Я пытаюсь использовать Doctrine 2 (для Symfony 2) для подключения к MSSQLServer с Linux-машины. .
Я установил pdo_dblib (драйвер PDO для FreeTDS/Sybase DB-lib) и могу подключиться к серверу БД через tsql в командной строке, а также из php cli. Таким образом, я знаю, что это работает.
В моем Symfony/app/config/parameters.ini я указал database_driver="pdo_sqlsrv" в качестве драйвера базы данных (так как я читал, что это будет обрабатываться db_lib
), но при попытке запустить команду создания базы данных (используя команду php app /console doctrine:database:create
) Я получаю сообщение об ошибке:
Не удалось создать базу данных для указанного соединения, не удалось найти драйвер
Затем я изменил драйвер на database_driver="pdo_dblib"
и теперь я получаю сообщение об ошибке:
[Доктрина\DBAL\DBALException]
Данный «драйвер» pdo_dblib неизвестен, в настоящее время Doctrine поддерживает только следующие драйвера: pdo_mysql, pdo_sqlite, pdo_pgsql, pdo_oci, oci8, ibm_db2, pdo_ibm, pdo_sqlsrv
Таким образом, единственным вариантом подключения к MSSQL является pdo_sqlsrv
, поэтому я решил установить это. Однако я только что обнаружил здесь, что
расширение PDO_SQLSRV совместимо только с PHP, работающим в Windows.
Таким образом, драйвер, поддерживаемый доктриной, и драйвер, доступный для использования в Linux, кажутся взаимоисключающими. Из поиска я не нашел ни одного случая решения этой проблемы до сих пор (один парень пометил проблему как решенную, но когда я прочитал ветку, он просто переместил свою среду разработки в окно Windows ... не совсем то, что у меня было в уме!).