Я использую Symfony 1.4 с доктриной.Symfony Doctrine migrations: removeIndex не работает
Вот моя первоначальная схема:
Page:
tableName: page
columns:
ref:
type: string(50)
notnull: true
unique: true
Я хотел бы, чтобы удалить индекс по столбцу реф с помощью миграции. Таким образом, схема становится:
Page:
tableName: page
columns:
ref:
type: string(50)
notnull: true
И мой файл миграции что-то вроде:
class Changepageref extends Doctrine_Migration_Base
{
public function up()
{
$this->removeIndex('page','ref');
}
public function down()
{
$this->addIndex('page','ref', array('fields'=>array('ref'=>array()),'unique'=>true));
}
}
Но это не будет работать, когда я запускаю его, потому что он ищет индекс с именем «ref_idx». Но если я посмотрю на свою базу данных, доктрина создала индекс с именем «ref», а не «ref_idx».
Что я делаю неправильно?
Если значение по умолчанию «_idx», то почему индекс, созданный Dotrine, был «ref», а не «ref_idx»? –
Возможно, это ошибка или какой-то проводной конфиг или аналогичный. Если вы установите формат IDX, он работает? Другим случаем может быть то, что 'addIndex()' не использует переменную IDX_FORMAT, поэтому вам нужно придерживаться данной схемы – DrColossos