Создание таблицы для миграции доктрин для пользовательского поведения - PullRequest
0 голосов
/ 23 декабря 2011

Я создал собственное поведение doctrine (1.2), которое должно создавать таблицы для моделей (очень похоже на поведение i18n). Я вижу эти таблицы в schema.sql, и если я выполняю их, то все в порядке, но это не такие таблицы, если моя миграция diff (doctrine: generate-migrations-diff).

Что я делаю не так?

class DescriptionableGenerator extends Doctrine_Record_Generator
{
  protected $_options = array(
                          'className'      => '%CLASS%Description',
                          'tableName'      => '%TABLE%_description',
                          'fields'         => array(),
                          'generateFiles'  => false,
                          'table'          => false,
                          'pluginTable'    => false,
                          'children'       => array(),
                          'options'        => array(),
                          'cascadeDelete'  => true,
                          'appLevelDelete' => false
                        );

  public function  __construct(array $options = array())
  {
    $this->_options = Doctrine_Lib::arrayDeepMerge($this->_options, $options);
  }

  public function buildRelation()
  {
    $this->buildForeignRelation('Descriptions');
    $this->buildLocalRelation();
  }

  public function setTableDefinition()
  {
    $this->hasColumn('lang', 'char', '2', array('notnull' => true));
    $this->hasColumn('field', 'string', '255', array('notnull' => true));
    $this->hasColumn('title', 'string', '255', array('notnull' => true));
    $this->hasColumn('description', 'clob');
    $this->hasColumn('compulsory', 'boolean', 1, array('notnull' => true, 'default' => 0));

    $this->addListener(new DescriptionableListener());
  }
}

1 Ответ

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

Решено!

Проблема возникает из-за команды "php symfony doctrine: build-model".Итак, если у вас возникла та же проблема, вы должны:

  1. Удалить свое поведение из схемы.
  2. Выполнить «доктрину php symfony: build-model».
  3. Добавитьваше поведение по схеме.
  4. Запустите "php symfony doctrine: generate-migrations-diff".

Chears!%)

...