2009-12-31 2 views
0

Я только что получил Doctrine 1.2.1, работающий в моей среде (ubuntu) вместе с Zend Framework. Когда я запускаю моя команда доктринаСоздана схема, но таблицы не

./doctrine строить-все-перезагружать

это дает мне выход:

build-all-reload - Are you sure you wish to drop your databases? (y/n) 
y 
build-all-reload - SQLSTATE[HY000]: General error: 1008 Can't drop database 'zcdev'; database doesn't exist. Failing Query: "DROP DATABASE zcdev" 
build-all-reload - Generated models successfully from YAML schema 
build-all-reload - Successfully created database for connection named 'doctrine' 
build-all-reload - Created tables successfully 
build-all-reload - Data was successfully loaded 

Но когда я смотрю в моей БД с PhpMyAdmin я узнаю, что мой db создается, но не моя таблица.

Вот мой файл YML:

options: 
type: INNODB 
collate: utf_general_ci 
charset: utf8 


    Events: 
    columns: 
     evt_id: 
     type: integer 
     primary: true 
     autoincrement: true 
     evt_name: string(200) 
     evt_description: string(200) 
     evt_startdate: date 
     evt_enddate: date 
     evt_starttime: time 
     evt_endtime: time 
     evt_amtpersons: integer 

Я проверил, если это действительно используя мой файл YML, переименовав его, и это происходит потому, что, когда я переименовать мой файл YML я получить соответствующую ошибку. Значит, любая идея?

+0

Ну, была ошибка в указанном выше yml-файле. В подборке отсутствовали 8 после uft – sanders

ответ

1

Включает ли вы spl_autoload_register при настройке автозагрузки? Вот моя функция initDoctrine из моего файла Bootstrap.php:

 
    public function _initDoctrine() 
    { 

     $this->getApplication()->getAutoloader() 
      ->pushAutoloader(array('Doctrine', 'autoload')); 
     spl_autoload_register(array('Doctrine', 'modelsAutoload')); 

     $manager = Doctrine_Manager::getInstance(); 

     $manager->setAttribute(Doctrine::ATTR_AUTO_ACCESSOR_OVERRIDE, true); 
     $manager->setAttribute(Doctrine::ATTR_MODEL_LOADING, Doctrine::MODEL_LOADING_CONSERVATIVE); 
     $manager->setAttribute(Doctrine::ATTR_AUTOLOAD_TABLE_CLASSES, true); 

     $doctrineConfig = $this->getOption('doctrine'); 

     Doctrine::loadModels($doctrineConfig['models_path']); 

     $conn = Doctrine_Manager::connection($doctrineConfig['dsn'],'doctrine'); 
     $conn->setAttribute(Doctrine::ATTR_USE_NATIVE_ENUM, true); 
     return $conn; 
    } 
+0

см. Мой предыдущий комментарий. она уже решена. Спасибо за вашу помощь в любом случае. – sanders