Создание таблиц и сущностей с Doctrine2 на основе объявления схемы - PullRequest
2 голосов
/ 10 января 2012

Я пытаюсь заставить Doctrine2 и Zend Framework работать вместе.До сих пор я был в состоянии автоматически загрузить Doctrine2 и подключиться к своей базе данных.

Теперь я с нетерпением жду создания моих таблиц, используя объявление схемы в yml:

Doctrine\Entities\User:
    type: entity
    table: core_user
    columns:
        id:
            primary: true
            autoincrement: true
            type: integer(11)
            notnull: true
        name:
            type: string
            notnull: true
            default: ''
        middle_name:
            type: string
            default: ''
        last_name:
            type: string
            notnull:true
            default: ''
        username:
            type: varchar(16)
            default: ''
        email:
            type: string
            notnull: true
            default: ''
        role_id:
            type: integer
        date_creation:
            type: timestamp
        version:
            type: timestamp

Iсмог заставить работать командную строку, но я не могу заставить ее создавать таблицы в моей базе данных.

Я использую стандартную Zend Framework структуру папок

+-- Application
      +-- configs
      +-- controllers
      +-- doctrine
          +-- Schema
              +-- schema.yml
          +-- Entities
          cli-config.php
      +-- layouts
      +-- models
      +-- modules
      +-- view
      bootstrap.php
+-- Public
+-- Library
      +-- Doctrine2
+-- Tests

Моя декларация схемы находится в Application/doctrine/Schema/schema.yml, и я пытаюсь создать из нее свою базу данных tables и мою Entities.

Когда я пытаюсь выполнить команду doctrine orm:schema-tool:create, я получаю следующее сообщение: No Metadata Classes to process. и мне интересно, почему.

Правильный ли я способ заставить его работать или я должен вручную определить свои сущности, а затем попытаться создать из него свои таблицы?

1 Ответ

3 голосов
/ 10 января 2012

Проверьте настройки в cli-config.php.Вы должны использовать драйвер YAML:

// $config instanceof Doctrine\ORM\Configuration
$driver = new YamlDriver(array('/path/to/files'));
$config->setMetadataDriverImpl($driver);

Больше в документах .

...