Я пытаюсь использовать Doctrine 2 (для Symfony 2) для подключения к MSSQLServer с Linux-машины.
Я установил pdo_dblib (PDO Driver for FreeTDS/Sybase DB-lib) и могу подключиться к серверу db через tsql в командной строке и из php cli. Таким образом, я знаю, что это работает.
В моем файле Symfony/app/config/parameters.ini я указал database_driver = "pdo_sqlsrv" в качестве драйвера базы данных (поскольку я читал, что это будет обрабатываться с помощью db_lib
), но при попытке запустить команду create database (с помощью команды 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, кажутся взаимовыгодными. Из поиска я не нашел примеров того, что эта проблема была решена до сих пор (один из них отметил проблему как решение, но когда я прочитал нить, он просто переместил его dev env в окно окна... не совсем то, что у меня было в виду!).