Doctrine and Postgresql, Генерация моделей из БД - PullRequest
1 голос
/ 21 ноября 2010

У меня есть база данных в Postgresql 9.0, и я пытаюсь использовать Doctrine ORM 1.2 для генерации моделей из БД.

Вот мой код:

<?php
require_once 'Doctrine.php';
spl_autoload_register(array('Doctrine', 'autoload'));
spl_autoload_register(array('Doctrine_Core', 'modelsAutoload'));
$manager = Doctrine_Manager::getInstance(); 
$conn = Doctrine_Manager::connection('pgsql://postgres:secret@192.168.1.108/erp','doctrine');
$conn->setAttribute( Doctrine_Core::ATTR_PORTABILITY, Doctrine_Core::PORTABILITY_FIX_CASE | PORTABILITY_RTM);
$conn->setAttribute( Doctrine_Core::ATTR_QUOTE_IDENTIFIER, true);
$manager->setAttribute(Doctrine_Core::ATTR_AUTO_ACCESSOR_OVERRIDE, true);
Doctrine_Core::loadModels('../application/models');
Doctrine_Core::generateModelsFromDb('../application/models', array('doctrine'), array('generateTableClasses' => true));
?>

и когда я запускаюстраницы, я получаю эту ошибку:

Fatal error: Uncaught exception 'Doctrine_Connection_Pgsql_Exception' with message 'SQLSTATE[42P01]: Undefined table: 7 ERROR: missing FROM-clause entry for table "t" LINE 6: ... t.typtype ... ^. Failing Query: "SELECT ordinal_position as attnum, column_name as field, udt_name as type, data_type as complete_type, t.typtype AS typtype, is_nullable as isnotnull, column_default as default, ( SELECT 't' in D:\Doctrine-1.2.3\Doctrine-1.2.3\Doctrine\Connection.php on line 1082

Стоит отметить, что этот код прекрасно работает для mysql (имея mysql: // ... в соединении curse), но возникают проблемы с получениемэто работает с postgresql 9.0.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 21 ноября 2010

Похоже на эту ошибку в Doctrine: http://www.doctrine -project.org / jira / browse / DC-919

0 голосов
/ 08 декабря 2011

Попробуйте добавить кавычки к имени таблицы или столбцу.

Поиск правильного наименования при экспорте таблицы.

Моя проблема заключалась в том, что кто-то добавил кавычки к имени таблицы.

$sql='SELECT "id","name",
   ("f1"=\'aaa\' OR
   "f1"=\'bbb\') AS "myflag"
   FROM "mytable"';
...