Symfony2 を MSSQL サーバーに接続する必要があります。
PHP 5.3 と pdo_dblib を使用して Ubuntu に Apache をインストールしたので、指示に従ってバンドルLSWDoctrinePdoDblibをインストールしました。
私の app/config/config.yml は次のようになります:
# Doctrine Configuration
doctrine:
dbal:
#driver: %database_driver%
driver_class: Lsw\DoctrinePdoDblib\Doctrine\DBAL\Driver\PDODblib\Driver
host: %database_host%
#host: mssql_freetds
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
# if using pdo_sqlite as your database driver, add the path in parameters.yml
# e.g. database_path: %kernel.root_dir%/data/data.db3
# path: %database_path%
orm:
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true
そして私の app/config/parameters.yml (偽のデータを含む):
parameters:
database_driver: pdo_dblib
database_host: 10.0.0.33
database_port: '1433'
database_name: DB_CONECTAR
database_user: user_dba
ここからの指示に従っており、コマンドを実行するときは次のとおりです。
php app/console doctrine:mapping:convert xml ./src/DBP/GestionWSBundle/Resources/config/doctrine --from-database --force
次に、次のエラーが表示されますが、そこに表示された SQL は問題なく動作します。
[Doctrine\DBAL\DBALException]
An exception occurred while executing 'SELECT col.name,
type.name AS type,
col.max_length AS length,
~col.is_nullable AS notnull,
def.definition AS [default],
col.scale,
col.precision,
col.is_identity AS autoincrement,
col.collation_name AS collation
FROM sys.columns AS col
JOIN sys.types AS type
ON col.user_type_id = type.user_type_id
JOIN sys.objects AS obj
ON col.object_id = obj.object_id
LEFT JOIN sys.default_constraints def
ON col.default_object_id = def.object_id
AND col.object_id = def.parent_object_id
WHERE obj.type = 'U'
AND obj.name = 'MAILING_LISTS'':
SQLSTATE[HY000]: General error: 4004 General SQL Server error: Check messages from the SQL Server [4004] (severity 16) [SELECT col.name,
type.name AS type,
col.max_length AS length,
~col.is_nullable AS notnull,
def.definition AS [default],
col.scale,
col.precision,
col.is_identity AS autoincrement,
col.collation_name AS collation
FROM sys.columns AS col
JOIN sys.types AS type
ON col.user_type_id = type.user_type_id
JOIN sys.objects AS obj
ON col.object_id = obj.object_id
LEFT JOIN sys.default_constraints def
ON col.default_object_id = def.object_id
AND col.object_id = def.parent_object_id
WHERE obj.type = 'U'
AND obj.name = 'MAILING_LISTS']
私に何ができるか考えていますか?事前にどうもありがとうございました!!
私が述べたように、私はhttps://github.com/LeaseWeb/LswDoctrinePdoDblibを使用していますそして、あなたがウェブサイトの最後で読むことができるように、彼は同じことをしようとして、やりました:
- 互換性のない列の型を文字列にマップする
- Doctrine コアをハックして、主キーのないテーブルをスキップする
どうすればそれができるか知っていますか?その情報を探す方法さえ知りません。